IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   PHP (https://www.ircforumlari.net/php/)
-   -   PHP socket bot hatası... (https://www.ircforumlari.net/php/52710-php-socket-bot-hatasi.html)

Kablosuz NET 05 Nisan 2008 13:42

PHP socket bot hatası...
 
Kod:

<?php
session_start();
// Güvenlik kodu

if($_SESSION[koruma]!=$_POST[guvenlik]) {
echo "Güvenlik kodunu girmediniz veya hatalı girdiniz.";
} else {

// Bot kodları

include("ayar.php");
ob_start();
set_time_limit(5);
?>
<html>
<head>
<title><?=$baslik;?> Web İstek</title>
</head>
<body>
<meta http-equiv="refresh" content="0; url=kapat.html">
<?
$isim = $_POST['isim'];
$ip = $_POST['ip'];

// İstek Kontrolü

if ($ip == "") {
echo "Lütfen Boş Alan Bırakmayınız.";
header("Location: index.php");
} else {

// İstek Logları

$logac = fopen("isteklog.txt","w+");
$baglan = fsockopen ($sunucu, $port, $hatano, $hatastr,);

// Bağlantı Kontrolü

if (!$baglan) {
echo 'Bağlantıda Hata.';
} else {
fputs($baglan, 'NICK '.$nick.$n);
fputs($baglan, 'USER MuH-Akt '.$yerel.' '.$sunucu.' : '.$nick.$n);

 while (!feof($baglan)) {
  $veri = fgets ($baglan,128);
  fputs($logac, $veri);
 
  // Ping'e Pong At

  if(preg_match("'PING(.*?)'si", $veri, $set)) {
  fputs($baglan, 'PONG ',trim($set[1]).$n);
  }

  // İsteği Bas

fputs($baglan, 'register '.$isim.' '.$mesaj.$n);


  // Bot bağlantısını kopartalım.


  fclose ($logac);
  fclose ($baglan);
  exit;
 }
}
}
ob_end_flush();
}
?>
</body>
</html>


İstek socketinden düzenlediğim bir botum var.. bunu web üzerinden nick kaydetme amaçlı kullanmak istiyorum mantık olarak herşey düzgün olsada bot servera bağlandığı anda komutu pastelediği için ya sunucu algılamıyor yada çeşitli hatalar ile botun bağlantısı kesiliyor.. Bunun önüne geçmek için bot servera bağlandıktan 3 sn sonra komutu yazabilir.. İşte bu noktada tıkandım..Yardımcı olabilecek arkadaşlar varsa memnun olurum..

Nickolas 05 Nisan 2008 13:57

Cevap: PHP socket bot hatası...
 
if(preg_match("'PING(.*?)'si", $veri, $set)) {
fputs($baglan, 'PONG ',trim($set[1]).$n);
}

kodunun altında

//:sdfsdf MODE sdfsdf:+iwxt -> Formatından yola çıkarak
if (preg_match('#(\S+) MODE (\S+):\+iwxt#i', $veri)) {
fputs($baglan, "KOMUT\r\n");
}

şeklinde ekleme yapabilirsin. Eğer sunucu girişinde sunucu kullanıcıya +ix modu ekliyorsa \+ix olarak değişirsin....

Örnek:

if (preg_match('#(\S+) MODE (\S+):\+iwxt#i', $veri)) {
fputs($baglan, "NS IDENTIFY şifre\r\n");
fputs($baglan, "JOIN #2,00\r\n"); // Tüm kanallardan çıkış
fputs($baglan, "JOIN #BILMEMNE\r\n");
}


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 19:53.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk