Merhaba arkadaşlar. Counter-Strike serveri için php ile yazılmış bir webpanel buldum ve kodlarını inceliyordum ve bu dökümandan yola çıkarak game-monitors gibi bi site yazmak istiyorum. Ancak takıldığım bir kaç nokta var anlayamadım gitti. Kullanılan mantık basit socket bağlantı ile porta bağlanıp belli komutlar gönderip o komuta dönen cevapları yorumlamak. Ancak servere gönderilen komutlar biraz karışık geldi. Örneğin;
$komut = "\xff\xff\xff\xffchallenge rcon\n";
Buradaki "
\xff" olayı veya buna benzer olaylar ne işe yarıyor. Regex le bir alakası varmı acaba ?
Birde son bir sorum olcak. Bu iş için netten bu konu ile ilgili bi sınıf buldum üzerinde bir kaç düzenleme yaptım.
<?php
class Socket{
var $Socket;
var $Mesaj;
var $Cevap;
var $IP;
var $Port;
/**
* Kurucu Fonksiyondur Sokcet Oluşturup Sınıfın $Socket değerine atar
*/
function Socket(){
$this->Socket=@socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
return $this;
}
/**
* Socket ip Porta Bağlanır.
*/
function baglan($ip=False,$port=False){
$this->IP=$ip ? $ip : $this->IP;
$this->Port=$port ? $port : $this->Port;
($this->IP AND $this->Port) OR $this->ipPortBos();
$sCreated=@socket_connect($this->Socket,$this->IP,$this->Port);
return $sCreated ? $this : False ;
}
/**
* Açılan Sokete string göndermeye yarar.
* @param mixed $String
*/
function yaz($String){
$this->Socket Or $this->socketYok();
@socket_write($this->Socket,$String,strlen($String));
return $this;
}
/**
* Açılan Socketten okuma yapar yazılan şeyin cevabııdr aynı zamanda
*
* @param mixed $uzunluk
* @return string
*/
function oku($uzunluk=1024){
$this->Socket Or $this->socketYok();
return @socket_read($this->Socket,$uzunluk,PHP_BINARY_READ);
}
/**
* Socketi Kapatır.
*
*/
function kapat(){
@socket_close($this->Socket);
}
/**
* Sınıfı temizler tekrar kullanıma açar
*
*/
function bosalt(){
$this->kapat();
unset($this->Socket,$this->Cevap,$this->Mesaj,$this->IP,$this->Port);
$this->Socket();
return $this;
}
/**
* Errors.
*/
function error($string){
die($string);
}
/**
* IP ve/veya Port atanmadığında otomatik çalışacak fonksiyon...
*/
private function ipPortBos(){
$this->error('IP Port Boş');
}
/**
* Socket Oluşturulmadığında otomatik çalışacak fonksiyon...
*/
private function socketYok(){
$this->error('Socket Oluşturulmamış');
}
}
?>Bu nasıl yeterlimi sizce bide bunda yardımcı olursanız. Şimdiden teşekkürler.