您好,欢迎访问一九零五行业门户网

php来实现telnet的连接、传递命令、获取返回值等功能!

sock = fsockopen($host,$port); socket_set_timeout($this->sock,2,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(192.168.0.1,23); echo $telnet->read_till(login: ); $telnet->write(kongxx\r\n); echo $telnet->read_till(password: ); $telnet->write(kongxx\r\n); echo $telnet->read_till(:> ); $telnet->write(ls\r\n); echo $telnet->read_till(:> ); echo $telnet->close(); */
其它类似信息

推荐信息