Tem 19

PHP de IRC Bot

Yorum Yok - Yorum Yaz

Gerçekten işe yaricak kodlar, ne güzel kanalınızı koruyabilir, loglarını yayınlayabilirsiniz. Aslında bakarsanız daha denemedim ama en yakın zamanda nasıl çalıştığınız denicem :)

 

PHP de yapmış olduğunuz bot ile IRC sunucunuzu koruyabilecek kanal ve kullanıcı listesini web uzerinden yayınlayabileceksiniz.

Hemen devam edelim ve kodlarımızı verelim dimi :)

PHP:
  1. <?
  2.   # Zaman sınırlaması yok.. (Tıme out almamak ıcın)
  3.   ob_start();
  4.  
  5.   # Yankının yapılacagı kullanıcı ve kapatma mesajı
  6.   $sahip = 'Sahip Nick';
  7.   $kapat = 'kapatma mesajı';
  8.  
  9.   # Gereklı degıskenler
  10.   $n = "n";
  11.   $nick = 'Bot-nick';
  12.   $kanal = 'kanal';
  13.   $uzaksunucu  = 'sunucuadres';
  14.   $yerelsunucu = 'adsluser-2866.adsl.ttnet.net.tr';
  15.   $port = 6667;
  16.  
  17.   $dosya = fopen("log.txt","w+");
  18.   $sunucu = fsockopen ($uzaksunucu, $port, $hatano, $hatastr, 0);
  19.  
  20.   # Baglantıda hata olusursa
  21.   if (!$sunucu)
  22.      {
  23.      echo 'Sunucuya Bağlanamadı';
  24.      }
  25.   else
  26.      {
  27.      # Sırasıyla nıkı, kullanıcıyı belırle ardından kanala gır ve selam ver
  28.      fputs($sunucu, 'NICK '.$nick.$n);
  29.      fputs($sunucu, 'USER '.$nick.' '.$yerelsunucu.' '.$uzaksunucu.' : '.$nick.$n);
  30.      fputs($sunucu, 'JOIN #'.$kanal.$n)
  31.  
  32.      while (!feof($sunucu))
  33.         {
  34.         $veri = fgets ($sunucu,128);
  35.         fputs($dosya, $veri);
  36.  
  37.         # Pıng gelırse Pong Gonder
  38.         if(preg_match("'PING(.*?)'si", $veri, $set))
  39.         fputs($sunucu,'PONG '.trim($set[1]).$n);
  40.  
  41.         # Kanal lıstesını al ve bunu bı $isimler ıcınde sakla
  42.         if(preg_match("':(.*?)353(.*?) :(.*?)'Ui", $set))
  43.         $isimler .= trim($set[3]);
  44.  
  45.         # Eger kanala bı mesaj yazıldıysa
  46.         if(preg_match("':(.*?)!(.*?)PRIVMSG #".$kanal." :(.*?)'Ui", $veri, $set))
  47.            {
  48.            # Yazılan mesaj kapanma mesajıysa botu kapat
  49.            if(trim($set[3]) == $kapat)
  50.               {
  51.               # Isım lıstesını bas ve hoscakal de
  52.               fputs($sunucu, 'PRIVMSG #'.$kanal.' :Hoşçakalın, '.$isimler.$n);
  53.               fclose ($sunucu);
  54.               fclose ($dosya);
  55.               exit;
  56.               }
  57.  
  58.            # Yazılan mesajı sahıbe echo et (test amaclı)
  59.            else if(trim($set[1]) != $nick)
  60.               {
  61.               fputs($sunucu,'PRIVMSG '.$sahip.' :'.trim($set[3]).' '.trim($set[1]).$n);
  62.               }
  63.            }
  64.         }
  65.      }
  66. ?>

 

Benzer Konular

This post has Yorum Yok. Yorum Yaz