PHP: <?php set_time_limit(0); $irc["server"] = "irc.tsua.net"; $irc["port"] = "7771"; $irc["channel"] = "#astral.antichat"; $bot["nick"] = "BoT"; $bot["id"] = "myID"; if ($fsock = fsockopen($irc["server"], $irc["port"])) { fwrite($fsock, "NICK ".$bot["nick"]."\r\nUSER ".$bot["id"]." 0 0 :".$bot["nick"]."\r\n"); $no_connect = 1; while (1 == 1) { if ($str = fread($fsock, 1024)) { if (substr($str, 0, 6) == "PING :") { fwrite($fsock, "PONG ".$irc["channel"]."\r\n"); } elseif (stristr($str, ":".$irc["server"]." 376 ".$bot["nick"]." :End of MOTD command.") && $no_connect == 1) { unset($no_connect); fwrite($fsock, "PING ".time()."\r\n"); while (!substr($str, 0, 4) == "PONG") { $str = fread($fsock, 1024); } fwrite($fsock, "JOIN ".$irc["channel"]."\r\n"); } } } } else { exit(); } ?>
A110ut , а как его запустить? я все данные ввел, положил на сервер, загрузил страничку, но на сервер он не заходит
Terys, многие бесплатные хосты не поддерживат фсокопен..может из за этого? а ваще [мат] извращаться, пишите бота на сокетах в мИРК или ставьте эггдропа )
лол... фсокопен == fsockopen зы: запускать желательно из ком. строки пример для винды: с:\путь_к_папке_с_пхп\php.exe с:\путь_к_папке_со_скриптом\bot.php
Code: <?php set_time_limit(0); $irc["server"] = "195.39.253.1"; $irc["port"] = "6667"; $irc["channel"] = "#Болтовня"; $bot["nick"] = "BoT"; $bot["id"] = "ID"; if ($fsock = fsockopen($irc["server"], $irc["port"])) { fwrite($fsock, "NICK ".$bot["nick"]."\r\nUSER ".$bot["id"]." 0 0 :".$bot["nick"]."\r\n"); $no_connect = 1; while (1 == 1) { if ($str = fread($fsock, 1024)) { if (substr($str, 0, 6) == "PING :") { fwrite($fsock, "PONG ".$irc["channel"]."\r\n"); } elseif (stristr($str, ":".$irc["server"]." 376 ".$bot["nick"]." :End of MOTD command.") && $no_connect == 1) { unset($no_connect); fwrite($fsock, "PING ".time()."\r\n"); while (!substr($str, 0, 4) == "PONG") { $str = fread($fsock, 1024); } fwrite($fsock, "JOIN ".$irc["channel"]."\r\n"); } } } } else { exit(); } ?> У меня ничё не вышло если кому не сложно запустите у себя на сервере
попоробуй запустить со своей машины. возможно я чтото лишнее удалил когда функции вырезал)) up: хотя нет. вроде все на месте
Запусти как демон. И исправь while(1==1) на while(1) бесконечный цыкл ведь. А вообще если пытаешься к ачату да и не только то сервера разные и строку stristr($str, ":".$irc["server"]." 376 ".$bot["nick"]." :End of MOTD command.") && $no_connect == 1 заменить на stristr($str," 376 ".$bot["nick"]." :End of MOTD command.") && $no_connect == 1 и все прекрассно конектиться.
а так не бесконечный? всеголишь вопрос синтаксиса имхо если уж на то пошло, то и с stristr($str, "376") конектить будет. и не только к "ачату"
я ввожу путь к файлику bot.php загружает страницу, но бот к серверу не конектистя "Запусти как демон" что это значит?
хостинг пхп поддержует, на странице пустота, колгда нажимаю просмотр штмл кода, этого скрипта нет в коде. может это с хостингом что-то не так? или я что-то не так сделал..
все так. никаких "кодов" быть не должно. бот конектится около минуты. если хостинг халявный, логично предположить что там стоит ограничение на время работы скрипта