heroman
26-12-2007, 18:18 PM
PHP de yapmış olduğunuz bot ile IRC sunucunuzu koruyabilecek kanal ve kullanıcı listesini web uzerinden yayınlayabileceksiniz.
<?
# Zaman sınırlaması yok.. (Tıme out almamak ıcın)
set_time_limit(0);
ob_start();
# Yankının yapılacagı kullanıcı ve kapatma mesajı
$sahip = 'Sahip Nick';
$kapat = 'kapatma mesajı';
# Gereklı degıskenler
$n = "\n";
$nick = 'Bot-nick';
$kanal = 'kanal';
$uzaksunucu = 'sunucuadres';
$yerelsunucu = 'adsluser-2866.adsl.ttnet.net.tr';
$port = 6667;
$dosya = fopen("log.txt","w+");
$sunucu = fsockopen ($uzaksunucu, $port, $hatano, $hatastr, 0);
# Baglantıda hata olusursa
if (!$sunucu)
{
echo 'Sunucuya Bağlanamadı';
}
else
{
# Sırasıyla nıkı, kullanıcıyı belırle ardından kanala gır ve selam ver
fputs($sunucu, 'NICK '.$nick.$n);
fputs($sunucu, 'USER '.$nick.' '.$yerelsunucu.' '.$uzaksunucu.' : '.$nick.$n);
fputs($sunucu, 'JOIN #'.$kanal.$n);
while (!feof($sunucu))
{
$veri = fgets ($sunucu,128);
fputs($dosya, $veri);
# Pıng gelırse Pong Gonder
if(preg_match("'PING(.*?)'si", $veri, $set))
fputs($sunucu,'PONG '.trim($set[1]).$n);
# Kanal lıstesını al ve bunu bı $isimler ıcınde sakla
if(preg_match("':(.*?)353(.*?) :(.*?)'Ui", $set))
$isimler .= trim($set[3]);
# Eger kanala bı mesaj yazıldıysa
if(preg_match("':(.*?)!(.*?)PRIVMSG #".$kanal." :(.*?)'Ui", $veri, $set))
{
# Yazılan mesaj kapanma mesajıysa botu kapat
if(trim($set[3]) == $kapat)
{
# Isım lıstesını bas ve hoscakal de
fputs($sunucu, 'PRIVMSG #'.$kanal.' :Hoşçakalın, '.$isimler.$n);
fclose ($sunucu);
fclose ($dosya);
exit;
}
# Yazılan mesajı sahıbe echo et (test amaclı)
else if(trim($set[1]) != $nick)
{
fputs($sunucu,'PRIVMSG '.$sahip.' :'.trim($set[3]).' '.trim($set[1]).$n);
}
}
}
}
?>
<?
# Zaman sınırlaması yok.. (Tıme out almamak ıcın)
set_time_limit(0);
ob_start();
# Yankının yapılacagı kullanıcı ve kapatma mesajı
$sahip = 'Sahip Nick';
$kapat = 'kapatma mesajı';
# Gereklı degıskenler
$n = "\n";
$nick = 'Bot-nick';
$kanal = 'kanal';
$uzaksunucu = 'sunucuadres';
$yerelsunucu = 'adsluser-2866.adsl.ttnet.net.tr';
$port = 6667;
$dosya = fopen("log.txt","w+");
$sunucu = fsockopen ($uzaksunucu, $port, $hatano, $hatastr, 0);
# Baglantıda hata olusursa
if (!$sunucu)
{
echo 'Sunucuya Bağlanamadı';
}
else
{
# Sırasıyla nıkı, kullanıcıyı belırle ardından kanala gır ve selam ver
fputs($sunucu, 'NICK '.$nick.$n);
fputs($sunucu, 'USER '.$nick.' '.$yerelsunucu.' '.$uzaksunucu.' : '.$nick.$n);
fputs($sunucu, 'JOIN #'.$kanal.$n);
while (!feof($sunucu))
{
$veri = fgets ($sunucu,128);
fputs($dosya, $veri);
# Pıng gelırse Pong Gonder
if(preg_match("'PING(.*?)'si", $veri, $set))
fputs($sunucu,'PONG '.trim($set[1]).$n);
# Kanal lıstesını al ve bunu bı $isimler ıcınde sakla
if(preg_match("':(.*?)353(.*?) :(.*?)'Ui", $set))
$isimler .= trim($set[3]);
# Eger kanala bı mesaj yazıldıysa
if(preg_match("':(.*?)!(.*?)PRIVMSG #".$kanal." :(.*?)'Ui", $veri, $set))
{
# Yazılan mesaj kapanma mesajıysa botu kapat
if(trim($set[3]) == $kapat)
{
# Isım lıstesını bas ve hoscakal de
fputs($sunucu, 'PRIVMSG #'.$kanal.' :Hoşçakalın, '.$isimler.$n);
fclose ($sunucu);
fclose ($dosya);
exit;
}
# Yazılan mesajı sahıbe echo et (test amaclı)
else if(trim($set[1]) != $nick)
{
fputs($sunucu,'PRIVMSG '.$sahip.' :'.trim($set[3]).' '.trim($set[1]).$n);
}
}
}
}
?>