• 24-11-2008, 23:06:59
    #1
    Merhabalar,

    Ben cs server için panel yapmaktayım çoğunuz Game Tracker - Server Stats, List Search, Ranking, Banners, & Social Network for Gamers adresini biliyodur bu siteye server ekleme yaptığında direk ip'den serverı isimini buluyor bunun çalışma mantığı nedir acaba ? Yani bende php ile sattığım bir serverın panelinde isiminin görünmesini istiyorum bu sistem hakkında bilgisi olan varsa paylaşırsa sevinirim

    Şimdiden değerli cevaplarınız için teşekkür ederim
  • 25-11-2008, 03:09:10
    #2
    Server Query Protocol leri üzerinde çalışacaksın.

    Örn ; http://developer.valvesoftware.com/w...Query_Protocol
  • 25-11-2008, 03:11:00
    #3
    Gamequery, csquery gibi query scriptleri var onlarla ilgili arastırma yapabilirsin.
  • 25-11-2008, 06:03:00
    #4
    ben bu gamequery ile ilgili script'i indirdim ama pek bişey anlamadım local olarak kurdum Haymac hocam biraz daha bu script'i nasıl kurcağımı anlatırsanız çok sevinirim
  • 25-11-2008, 06:16:50
    #5
    galiba kimsenin araştırmaya niyeti yok. Ben 1 ay araştırma yapmıştım bu işler için biraz emek verin bence
  • 25-11-2008, 16:19:46
    #6
    Bunun isini gormesi lazim.
    Eğer counter-strike oyun serveri işindeysen birebir görüşmek isterim msn aracılığıyla
    birbirimize yardım edebiliriz.
    <?
    function sunucuadi($ip,$port=27015,$bekleme=500) { 
    	$komut = "\xFF\xFF\xFF\xFFinfo\x00";
    	
    	if (!$veriakisi=fsockopen("udp://".$ip,$port,$errnr)) return false;
    	// Akis icin gerekli ayarlar
    	stream_set_blocking($veriakisi,true); 
    	// Zaman asimi ayari
    	stream_set_timeout($veriakisi,1);
    	
    	fwrite($veriakisi,$komut); 
    	// Ham Veriyi aliyoruz
    	do { 
    		$veri.=fgetc($veriakisi); 
    		$durum=stream_get_meta_data($veriakisi); 
    	} while ($durum["unread_bytes"]); 
    	fclose($veriakisi);
    	// Eger Veri 5 karakterse cevap alamamisiz demektir.
    	if (strlen($veri)<5) return false;
    	// Sorun yoksa veriyi donduruyoruz
    	$bilgi = explode("\x00",$veri);
    	return $bilgi[1];
    }
    
    // Basit Kullanim
    $ip    = "1.2.3.4";
    $port  = 27015;
    $isim1 = sunucuadi($ip,$port);
    $isim2 = sunucuadi("1.2.3.4",27015);
    $isim3 = sunucuadi("1.2.3.4");
    print("1: $isim1<br />");
    print("2: $isim2<br />");
    print("3: $isim3<br />");
    ?>
  • 25-11-2008, 19:38:31
    #7
    Sunucu adresine 27015 vb. portundan açacağın UDP bağlantısından sonra, serverdan istediğin bilgileri cevap olarak alaiblmen için "infostring" komutunu göndermen gerekiyor. Yukarıdaki arkadaşın verdiği kod işini görecektir. Ama orda gönderilen komut "info" olarak ayarlanmış. Orayı infostring yaparsan, şuna benzer bi yapı gelecek sayfaya ;

    \protocol\46\address\212.175.128.15:27015\players\21\proxytarget\0\***\1\max\20\bots\0\gamedir\cstrike\description\CounterStrike\hostname\cs1.oyunalemi.com (CSTRIKE/SXE)\map\de_inferno\type\d\password\0\os\l\secure\0\mod\1\modversion\1\svonly\0\cldll\1
    Burda da \cvar\deger\ formatında görünüyo tüm veriler. Örn en baştan misal verirsek :

    protocol 46
    address 212.175.128.15:27015
    players 21
    max 20
    hostname cs1.oyunalemi.com (CSTRIKE/SXE)


    gibi. Bunlarıda "\" işaretinden explode () fonksiyonuyla bölerek rahatça kullanabilirsin.

    Biraz uğraş ve araştır okadar
  • 25-11-2008, 22:11:22
    #8
    Değerli cevaplarınız için çok çok teşekkür ederim , TrGameArea msn adresini özelden atarsan konuşabiliriz kardeş