文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php教程>php怎么实现telnet

php怎么实现telnet

时间:2021-10-28  来源:互联网

今天PHP爱好者为您带来php实现telnet的方法:1、创建一个PHP示例文件;2、通过“class PHPTelnet {function Connect($server,$user,$pass) {...}}”方式实现telnet功能即可。希望对大家有所帮助。

本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑

php怎么实现telnet?

php实现telnet功能示例

代码如下:

<?php
class PHPTelnet {
   var $show_connect_error=1;
   var $use_usleep=0;  // change to 1 for faster execution
       // don't change to 1 on Windows servers unless you have PHP 5
   var $sleeptime=125000;
   var $loginsleeptime=1000000;
   var $fp=NULL;
   var $loginprompt;
   var $conn1;
   var $conn2;
   /*
   0 = success
   1 = couldn't open network connection
   2 = unknown host
   3 = login failed
   4 = PHP version too low
   */
   function Connect($server,$user,$pass) {
       $rv=0;
       $vers=explode('.',PHP_VERSION);
       $needvers=array(4,3,0);
       $j=count($vers);
       $k=count($needvers);
       if ($k<$j) $j=$k;
       for ($i=0;$i<$j;$i++) {
           if (($vers[$i]+0)>$needvers[$i]) break;
           if (($vers[$i]+0)<$needvers[$i]) {
               $this->ConnectError(4);
               return 4;
           }
       }
       $this->Disconnect();
       if (strlen($server)) {
           if (preg_match('/[^0-9.]/',$server)) {
               $ip=gethostbyname($server);
               if ($ip==$server) {
                   $ip='';
                   $rv=2;
               }
           } else $ip=$server;
       } else $ip='127.0.0.1';
       if (strlen($ip)) {
           if ($this->fp=fsockopen($ip,23)) {
               fputs($this->fp,$this->conn1);
               $this->Sleep();
               fputs($this->fp,$this->conn2);
               $this->Sleep();
               $this->GetResponse($r);
               $r=explode("\n",$r);
               $this->loginprompt=$r[count($r)-1];
               fputs($this->fp,"$user\n");
               $this->Sleep();
               fputs($this->fp,"$pass\n");
               if ($this->use_usleep) usleep($this->loginsleeptime);
               else sleep(1);
               $this->GetResponse($r);
               $r=explode("\n",$r);
               if (($r[count($r)-1]=='')||($this->loginprompt==$r[count($r)-1])) {
                   $rv=3;
                   $this->Disconnect();
               }
           } else $rv=1;
       }
       if ($rv) $this->ConnectError($rv);
       return $rv;
   }
   function Disconnect($exit=1) {
       if ($this->fp) {
           if ($exit) $this->DoCommand('exit',$junk);
           fclose($this->fp);
           $this->fp=NULL;
       }
   }
   function DoCommand($c,&$r) {
       if ($this->fp) {
           fputs($this->fp,"$c\n");
           $this->Sleep();
           $this->GetResponse($r);
           $r=preg_replace("/^.*?\n(.*)\n[^\n]*$/","$1",$r);
       }
       return $this->fp?1:0;
   }
   function GetResponse(&$r) {
       $r='';
       do {
           $r.=fread($this->fp, 1024);
           $s=socket_get_status($this->fp);
       } while ($s['unread_bytes']);
   }
   function Sleep() {
       if ($this->use_usleep) usleep($this->sleeptime);
       else sleep(1);
   }
   function PHPTelnet() {
       $this->conn1=chr(0xFF).chr(0xFB).chr(0x1F).chr(0xFF).chr(0xFB).
           chr(0x20).chr(0xFF).chr(0xFB).chr(0x18).chr(0xFF).chr(0xFB).
           chr(0x27).chr(0xFF).chr(0xFD).chr(0x01).chr(0xFF).chr(0xFB).
           chr(0x03).chr(0xFF).chr(0xFD).chr(0x03).chr(0xFF).chr(0xFC).
           chr(0x23).chr(0xFF).chr(0xFC).chr(0x24).chr(0xFF).chr(0xFA).
           chr(0x1F).chr(0x00).chr(0x50).chr(0x00).chr(0x18).chr(0xFF).
           chr(0xF0).chr(0xFF).chr(0xFA).chr(0x20).chr(0x00).chr(0x33).
           chr(0x38).chr(0x34).chr(0x30).chr(0x30).chr(0x2C).chr(0x33).
           chr(0x38).chr(0x34).chr(0x30).chr(0x30).chr(0xFF).chr(0xF0).
           chr(0xFF).chr(0xFA).chr(0x27).chr(0x00).chr(0xFF).chr(0xF0).
           chr(0xFF).chr(0xFA).chr(0x18).chr(0x00).chr(0x58).chr(0x54).
           chr(0x45).chr(0x52).chr(0x4D).chr(0xFF).chr(0xF0);
       $this->conn2=chr(0xFF).chr(0xFC).chr(0x01).chr(0xFF).chr(0xFC).
           chr(0x22).chr(0xFF).chr(0xFE).chr(0x05).chr(0xFF).chr(0xFC).chr(0x21);
   }
   function ConnectError($num) {
       if ($this->show_connect_error) switch ($num) {
       case 1: echo '<br />[PHP Telnet] <a href="https://www.jb51.net/php-telnet/errors/fsockopen.php">Connect failed: Unable to open network connection</a><br />'; break;
       case 2: echo '<br />[PHP Telnet] <a href="https://www.jb51.net/php-telnet/errors/unknown-host.php">Connect failed: Unknown host</a><br />'; break;
       case 3: echo '<br />[PHP Telnet] <a href="https://www.jb51.net/php-telnet/errors/login.php">Connect failed: Login failed</a><br />'; break;
       case 4: echo '<br />[PHP Telnet] <a href="https://www.jb51.net/php-telnet/errors/php-version.php">Connect failed: Your server\'s PHP version is too low for PHP Telnet</a><br />'; break;
       }
   }
}
?>

以上就是php怎么实现telnet的详细内容,更多请关注php爱好者其它相关文章!

相关阅读更多 +
最近更新
排行榜 更多 +
元梦之星最新版手游

元梦之星最新版手游

棋牌卡牌 下载
我自为道安卓版

我自为道安卓版

角色扮演 下载
一剑斩仙

一剑斩仙

角色扮演 下载