美文网首页
PHP监本telnet到服务器并执行命令脚本,可以用来执行dub

PHP监本telnet到服务器并执行命令脚本,可以用来执行dub

作者: 人在码途 | 来源:发表于2018-06-04 09:05 被阅读26次
    <?php
    error_reporting(-1);
    
    class Telnet {
     var $sock = NULL;
    
     function telnet($host,$port) {
      $this->sock = fsockopen($host,$port);
      socket_set_timeout($this->sock,10,0);
     }
    
     function close() {
      if ($this->sock)  fclose($this->sock);
      $this->sock = NULL;
     }
    
     function write($buffer) {
      $buffer = str_replace(chr(255),chr(255).chr(255),$buffer);
      fwrite($this->sock,$buffer);
     }
    
     function getc() {
      return fgetc($this->sock); 
     }
    
     function read_till($what) {
      $buf = '';
      while (1) {
       $IAC = chr(255);
    
       $DONT = chr(254);
       $DO = chr(253);
    
       $WONT = chr(252);
       $WILL = chr(251);
    
       $theNULL = chr(0);
    
       $c = $this->getc();
    
       if ($c === false) return $buf;
       if ($c == $theNULL) {
        continue;
       }
    
       if ($c == "1") {
        continue;
       }
    
       if ($c != $IAC) {
        $buf .= $c;
    
        if ($what == (substr($buf,strlen($buf)-strlen($what)))) {
         return $buf;
        }
        else {
         continue;
        }
       }
    
       $c = $this->getc();
    
       if ($c == $IAC) {
       $buf .= $c;
       }
       else if (($c == $DO) || ($c == $DONT)) {
        $opt = $this->getc();
        // echo "we wont ".ord($opt)."\n";
        fwrite($this->sock,$IAC.$WONT.$opt);
       }
       elseif (($c == $WILL) || ($c == $WONT)) {
        $opt = $this->getc();
        // echo "we dont ".ord($opt)."\n";
        fwrite($this->sock,$IAC.$DONT.$opt);
       }
       else {
        // echo "where are we? c=".ord($c)."\n";
       }
      }
     }
    }
    
    $telnet = new Telnet("193.23.212.122",20880);
    //$telnet->write("\r\n");
    //echo $telnet->read_till(":> ");
    $telnet->write("invoke balabala\r\n");
    echo $telnet->read_till(":> ");
    echo $telnet->close();
    
    
    

    相关文章

      网友评论

          本文标题:PHP监本telnet到服务器并执行命令脚本,可以用来执行dub

          本文链接:https://www.haomeiwen.com/subject/eekesftx.html