php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
PHP IRC BOT Problem


 
noEntry
18-11-2008, 22:47 
 
Ich hab das problem das wenn ich versuche zu connecten immer folgende Fehlermeldung kommt...

NOTICE AUTH :*** Looking up your hostname NOTICE AUTH :*** Looking up your hostname NOTICE AUTH :*** Found your hostname, cached NOTICE AUTH :*** Found your hostname, cached NOTICE AUTH :*** Checking Ident NOTICE AUTH :*** Checking Ident PING :1572818974 PING :1572818974 :Burstfire.UK.EU.GameSurge.net 513 burncycle :Your client may not be compatible with this server. :Burstfire.UK.EU.GameSurge.net 513 burncycle :Your client may not be compatible with this server. :Burstfire.UK.EU.GameSurge.net 513 burncycle :Compatible clients are available at http://www.gamesurge.net/links/ :Burstfire.UK.EU.GameSurge.net 513 burncycle :Compatible clients are available at http://www.gamesurge.net/links/ ERROR :Closing Link: burncycle by Burstfire.UK.EU.GameSurge.net (Registration Timeout) ERROR :Closing Link: burncycle by Burstfire.UK.EU.GameSurge.net (Registration Timeout)

kann mir vllt jemand helfen ? :-)



<?php



set_time_limit(0);


$server = "irc.gamesurge.net";
$port = "6667";
$nickn = "xxxx";
$realn = "xxxx";


$connect = fsockopen($server, $port);

fputs($connect, "USER ".$nickn." 0 0 :".$realn."\r\n");

fputs($connect, "NICK ".$nickn."\r\n");

[...]



?>



mfg noEntry

 
Skaschy
19-11-2008, 11:42 
 
wer PING't muss auch PONG'en!

 
noEntry
19-11-2008, 20:57 
 
hab ich ja auch oder ist das falsch ?


mfg


$server = "irc.gamesurge.net";
$port = "6667";
$nickn = "xxxx";
$realn = "xxxx";



$connect = fsockopen($server, $port);


fputs($connect, "USER ".$nickn." 0 0 :".$realn."\r\n");


fputs($connect, "NICK ".$nickn."\r\n");
fputs($connect, "JOIN #test");

while (!feof($connect)) {

$line = fgets($connect, 128);
echo $line."\n";

$line = explode("PING :", $line);

echo $line[1];
echo $line[0]."\n";

if ($line[1]) {

fputs($connect, "PONG ".$line[1]."\r\n");
}

}



fclose($connect);

?>

 
Skaschy
19-11-2008, 22:42 
 
Original geschrieben von noEntry
hab ich ja auch oder ist das falsch ?

Jup!


<?php
$sServer = "irc.gamesurge.net";
$iPort = 6667;
$sNick = "TestNick";
$sReal = "TestName";
$sCrLf = "\r\n";

$rHandle = @fsockopen($sServer, $iPort, &$iErrorNo, &$sErrorStr, 1);
if (!$rHandle) {
print 'Error<br />' . $sCrLf;
print $iErrorNo . ': ' . $sErrorStr . $sCrLf;
die();
}

fputs($rHandle, 'USER ' . $sNick . ' 0 0 :' . $sReal . $sCrLf);
fputs($rHandle, 'NICK ' . $sReal . $sCrLf);

while (!feof($rHandle)) {
$sBuffer = fgets($rHandle, 128);
print $sBuffer . $sCrLf;
$aBufferPart = explode(" ", $sBuffer);
if($aBufferPart[0] == "PING") {
$aPing = explode(":", $sBuffer);
$sReply = $aPing[1];
fputs($rHandle, 'PONG ' . $sReply . $sCrLf);
print fread($rHandle, 128);
}
}
?>


hier mal schnell zusammen gefrickelt.

 
noEntry
19-11-2008, 23:00 
 
danke :-) sowas hab ich mir gewünscht funktioniert super :-D



mfg

 
noEntry
20-11-2008, 23:18 
 
hoffe das es nicht schlimm ist wenn ich ein doppelpost mach aber sonst ließst das ja verscheinlich niemand :-|

kann mir noch jemand ein beispiel geben wie ich jetzt eingaben vergleich kann ihrgendwie bekomm ich das nicht hin -.-

danke schonmal


mfg

 
ghostgambler
20-11-2008, 23:39 
 
Na mit if halt?
Vielleicht solltest du den relevanten Code + Protokoll-Dump mal posten, damit man überhaupt versteht was du willst :confused:

 
noEntry
21-11-2008, 08:33 
 
Ich will wenn ein Benutzer Admin eingiebt ne Aktion ausführen. Ich hab es mit if versucht aber ihrgendwie funktioniert das nicht selbe wenn ich die var ausgebe und sie genaü den Inhalt enthält mit dem ich verglichen habe.

Mfg
Ist mit Handy brachrieben also sry wenn ihrgendqas nicht wirklich stimmt.

 
hhcm
21-11-2008, 10:11 
 
Steuerzeichen oder Leerzeichen bedacht? var_dump ist dein Freund.

 
noEntry
21-11-2008, 20:22 
 
ja eigentlich schon mein aktueller code ist...





<?php

set_time_limit(0);
$sServer = "irc.gamesurge.net";
$iPort = 6667;
$sNick = "lol12345ax";
$sReal = "lol12345ax";
$sCrLf = "\r\n";
$st_channel = "#xxxx";

$rHandle = @fsockopen($sServer, $iPort, &$iErrorNo, &$sErrorStr, 1);
if (!$rHandle) {
print 'Error<br />' . $sCrLf;
print $iErrorNo . ': ' . $sErrorStr . $sCrLf;
die();
}

fputs($rHandle, 'USER ' . $sNick . ' 0 0 :' . $sReal . $sCrLf);
fputs($rHandle, 'NICK ' . $sReal . $sCrLf);
$join = 0;
while (!feof($rHandle)) {
$sBuffer = fgets($rHandle);
echo $sBuffer . $sCrLf;
$aBufferPart = explode(" ", $sBuffer);
if($aBufferPart[0] == "PING") {
$aPing = explode(":", $sBuffer);
$sReply = $aPing[1];
fputs($rHandle, 'PONG ' . $sReply . $sCrLf);
print fread($rHandle);
$ping_1 = 1;
}

if($join == 0 && $ping_1 == 1)
{
fputs($rHandle,"JOIN #xxxx\r\n");
$join = 1;
}

$test = explode(' ', $sBuffer);
$cmd = str_replace(array(chr(10), chr(13)), '',$test[3]);
if ($cmd == ":!lol") {
fputs($rHandle, "PRIVMSG ".$ex[2]." :lol\n");
}



}
?>


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:17 Uhr.