• 14-05-2010, 21:16:30
    #1
    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.
  • 14-05-2010, 22:43:27
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    SSH komutu olabilir... RegEX'te hiç öyle karakterler görmedim ben.