#1 22. Dezember 2013 Zuletzt bearbeitet: 22. Dezember 2013 Hallo, würde gerne einen IRC Bot umsetzen, PHP wäre hierbei das Ziel, das ganze soll so minimal wie möglich sein, im großen funktioniert der und macht auch das was er soll, nur wie bekomme ich ihn nun dazu auf einem bnc zu conecten. Meine Versuche in die Richtung Enden immer damit, da er meint das ich kein Pass mit übergebe also habe ich folgendes versucht: $this->send_data('/OUTE PASS', 'mein pass'); was aber ebenfalls nicht zum erfolg führt Code: <?php //So the bot doesnt stop. set_time_limit(0); ini_set('display_errors', 'on'); //Example connection stuff. $config = array( 'server' => 'server', 'port' => 'port', 'nick' => 'Decryptor', 'name' => 'Decryptor', 'pass' => 'Passwort', 'Ident' => 'Decryptor', 'USERID' => 'Decryptor', 'chan' => '#test2', ); class IRCBot { var $socket; var $ex = array(); function __construct($config) { $this->socket = fsockopen($config['server'], $config['port']); $this->login($config); $this->main(); $this->send_data('JOIN', '#chat'); } function login($config) { $this->send_data('USERID', $config['nick']); $this->send_data('USER', $config['nick'], $config['nick'].' :'.$config['name']); $this->send_data('NICK', $config['nick']); sleep(6); $this->send_data('JOIN', $config['chan']); } function main() { $data = fgets($this->socket, 128); flush(); $this->ex = explode(' ', $data); if($this->ex[0] == 'PING') { $this->send_data('PONG', $this->ex[1]); //Plays ping-pong with the server to stay connected. } $command = str_replace(array(chr(10), chr(13)), '', $this->ex[3]); echo $this->ex[0]; if(preg_match("/Decryptor/", $this->ex[0])) { switch($command) //List of commands the bot responds to from a user. { case ':!quit': $this->send_data('QUIT', 'acidavengers.co.uk made Bot'); break; case ':nix': print_r($this); break; } } $this->main(); } function send_data($cmd, $msg = null) //displays stuff to the broswer and sends data to the server. { if($msg == null) { fputs($this->socket, $cmd."\r\n"); echo "$cmd \n"; } else { fputs($this->socket, $cmd.' '.$msg."\r\n"); echo "$cmd, $msg \n"; } } } $bot = new IRCBot($config); ?> + Multi-Zitat Zitieren
#2 22. Dezember 2013 AW: PHP IRC BOT und BNC Login Wo hast du das eingefügt? Hast du mal den Traffic mitgeloggt und geschaut, ob alles passt? + Multi-Zitat Zitieren
#3 22. Dezember 2013 Zuletzt bearbeitet: 22. Dezember 2013 AW: PHP IRC BOT und BNC Login vmware debian, wegen loggen mal schauen, wenn ich normal über nen irc ohne pw gehe funzt es ja + Multi-Zitat Zitieren
#4 22. Dezember 2013 AW: PHP IRC BOT und BNC Login Mit wo meine ich wo im Code. Außerdem benötigen alle anderen Commands im Sckipt kein "/" am Anfang. Ich habe das IRC Protokoll nicht im Kopf (und bin auch zu faul jetzt die passenden Stellen im RFC dazu zu suchen) aber an das Protokoll musst du dich schon halten. Wenn du den benötigten Traffic kennst (wovon ich mal ausgehe) würde ich einfach den vom Script gesendeten Traffic mitloggen. Dann siehst du ja recht schnell wo das Problem liegt. + Multi-Zitat Zitieren
#5 22. Dezember 2013 Zuletzt bearbeitet: 23. Dezember 2013 AW: PHP IRC BOT und BNC Login stimmt, hatte aber auch mehere variaten ausprobiert, ich hatte es direkt nach dem Login, aber tat sich trotzdem nichts, naja morgen nochmal schauen edit: hab nun den Fehler: Die User Anmeldung ist Murks, und laut Ref muss man bevor man den nick schickt erstmal ein PASS pw schicken, dann fuktioniert das ganze auch + Multi-Zitat Zitieren