Modifier un topic irc avec un script php

dtom

Expert
Bonjour,

Je cherche un code source me permettant de modifier un topic irc avec une page php.

Le serveur irc est : quakenet
le chan : bsk-gaming

je pense que je devrai aussi mettre un nom d'user et un mot de passe pour avoir l'autorisation de modifier le topic.

ps : si je demande ici, c'est que aprés de longues recherches je n'ai pas trouvé un script qui fesais cette fonction :(
 

batchy

Grand Maître
alors t'a deux solutions :

la premiere est barbare et consiste à se connecter sur le serveur irc dans le seul but de changer le topic, ce qui fait que d'une part tu va charger ton serv http et de l'autre sur le salon tu verra un idiot arriver et changer le topic avant de partir

la deuxieme est d'avoir un bot idiot(oui encore un, pas grave jamais 4 sans 5 ...) qui fait soit office de serveur http soit qui scrute periodiquement une page pour savoir s'il faut changer le topic

pond un code maitenant :)
 

batchy

Grand Maître
justement je pense pas qu'il soit possible de faire du TCP sur un serveur web, t'est obligé de mettre un bot ...
 

dtom

Expert
je pensais que ct possible, on peut bien faire des sessions sockets, mais tu na rien de concret a me proposer comme exemple?
 

batchy

Grand Maître

exemple modifié à l'arrache, proviens de l'exemple de php :
Code:
<?php
error_reporting(E_ALL);
echo "<h2>Connexion TCP/IP à un serveur IRC</h2>\n";

do {

   $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
   if ($socket < 0) {
      echo "socket_create:" . socket_strerror ($socket) . "\n";
      break;
   }
    $result = socket_connect($socket, gethostbyname('ton.serv.irc.org'), 6667);
    if ($result < 0) {
       echo "socket_connect:" . socket_strerror($result) . "\n";
       break;
    }
$in = "NICK tonpseudo\r\n";
$in .= "USER tonident :tonrealname\r\n";
$in .= "USERHOST tonpseudo\r\n"; // juste pour le faire attendre un peu
$in .= "JOIN :#tonsalon\r\n";
// si ton salon est +t, il te faut être opérateur du salon
// si tu doit t'identifier par nickserv :
$in .= "PRIVMSG NickServ :IDENTIFY tonpass\r\n";
$in .= "PRIVMSG ChanServ :OP #tonsalon\r\n";
// sinon tu adapte ...
$in .= "TOPIC #tonsalon :Insèrer un topic ici\r\n"; // faire attention : si le topic contient \r\n, il y a une faille de sécu car on peut faire executer des commandes en tant qu'opérateur ...
$in .= "PART #tonsalon :\r\n";
$out = '';

socket_write($socket, $in, strlen($in));
echo "réponses du serveur IRC : \n\n"; // utile pour debugger
while ($out = socket_read($socket, 2048)) {
   echo $out;
}
socket_close($socket);
echo "\nFin\n";
} while (0);
?>

je pense pas que ça marche sur un serveur HTTP grand public, mais bon ...

pour améliorer et comprendre ça regarde dans ton client IRC comment obtenir les messages qu'il envoie, selon les logiciels ça s'apelle rawlog, debug ...
 

dtom

Expert
non mais pas de prob pour le serv http, on en a HT un qui a des socks ouverts, sinon mon pc est un serveur avec les services http, ftp. (http://dtom.hd.free.fr).

merci je vais tester dés que j'ai du temps.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 132
Messages
6 718 005
Membres
1 586 388
Dernier membre
mery2005
Partager cette page
Haut