PHP Telnet程序代码

网络 网络管理
文章摘要:下面我们来对PHP Telnet程序的具体代码详细讲解一下。那么文中所设计的内容希望能够给大家提供一个参考作用。

Telnet可以帮助我们完成远程登录。其中实现它的代码形式并不固定,这里我们介绍的则是PHP Telnet程序。那么就让我们来一起看看具体的代码是如何编写的。那么具体的内容请大家浏览正文。

PHP Telnet程序

PHP代码:

PHP code  
 <?php 
 /**  
* name:薛如飞  
* qq:6706250  
* e-mail:xuerufei@163.com  
* blog:[url=http://hi.baidu.com/]http://hi.baidu.com/[/url]飞云盖天  
* date:08.08.28  
**/  
if (isset($_POST['host']) and isset($_POST['user']))  
{  
 $host= $_POST['host'];  
 $user= $_POST['user'];  
 $pass= $_POST['pass'];  
 $cmdstripslashes($_POST['cmd']);  
 require_once "phpTelnet.php";  
 $Telnet = new PHPTelnet();  
 $Telnet->show_connect_error=0;  
 $result = $Telnet->Connect($host,$user,$pass);  
 switch ($result)  
 {  
  case 0:  
   $Telnet->DoCommand($cmd, $result);  
  echo $result;  
  $Telnet->Disconnect();  
  break;  
  case 1:  
   echo '[PHP Telnet] Connect failed: Unable to open network connection';  
  break;  
  case 2:  
   echo '[PHP Telnet] Connect failed: Unknown host';  
  break;  
  case 3:  
   echo '[PHP Telnet] Connect failed: Login failed';  
  break;  
  case 4:  
   echo '[PHP Telnet] Connect failed: Your PHP version does not support PHP Telnet';  
  break;  
 }  
}  
else  
{  
 ?> 
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
  <form action="index.php" method="post" name="form0" id="form0"> 
  <p></p> 
  <p align="center" >Telnet</p> 
  <table width="200" border="0" align="center"> 
  <tr> 
  <td width="81" height="18">host:</td> 
  <td width="109"><input name="host" type="text" size="16" value="" /></td> 
  </tr> 
  <tr> 
  <td width="81" height="18">user:</td> 
  <td width="109"><input name="user" type="text" size="16" value="" /></td> 
  </tr> 
  <tr> 
  <td width="81" height="18">pass:</td> 
  <td width="109"><input name="pass" type="text" size="16" value="" /></td> 
  </tr> 
  <tr> 
  <td width="81" height="18">cmd:</td> 
  <td width="109"> 
  <textarea rows="6" name="cmd" cols="16"></textarea></td> 
  </tr> 
  <tr> 
  <td> </td> 
  <td><input type="submit" name="Submit" value="提交" /></td> 
  </tr> 
  </table> 
  <p> </p> 
  </form> 
  <?php 
 }  
?> 
 
 <?php 
 /*  
PHP Telnet 1.1  
by Antone Roundy  
adapted from code found on the PHP website  
public domain  
*/  
class PHP Telnet   
{  
 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\r");  
    $this->Sleep();  
    fputs($this->fp,"$pass\r");  
    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\r");  
   $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,1000);  
   $s=socket_get_status($this->fp);  
  }  
  while ($s['unread_bytes']);  
 }  
 
 function Sleep()   
 {  
  if ($this->use_usleep) usleep($this->sleeptime);  
  else sleep(1);  
 }  
 
 function PHP Telnet()   
 {  
  $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="[url=http://www.geckotribe.com/php-Telnet/errors/fsockopen.php]http://www.geckotribe.com/php-Telnet/errors/fsockopen.php">Connect[/url] failed: Unable to open network connection</a><br />'; break;  
    case 2: echo '<br />[PHP Telnet] <a href="[url=http://www.geckotribe.com/php-Telnet/errors/unknown-host.php]http://www.geckotribe.com/php-Telnet/errors/unknown-host.php">Connect[/url] failed: Unknown host</a><br />'; break;  
    case 3: echo '<br />[PHP Telnet] <a href="[url=http://www.geckotribe.com/php-Telnet/errors/login.php]http://www.geckotribe.com/php-Telnet/errors/login.php">Connect[/url] failed: Login failed</a><br />'; break;  
    case 4: echo '<br />[PHP Telnet] <a href="[url=http://www.geckotribe.com/php-Telnet/errors/php-version.php]http://www.geckotribe.com/php-Telnet/errors/php-version.php">Connect[/url] failed: Your server\'s PHP version is too low for PHP Telnet</a><br />'; break;  
   }  
 }  
}  
?> 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113.
  • 114.
  • 115.
  • 116.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121.
  • 122.
  • 123.
  • 124.
  • 125.
  • 126.
  • 127.
  • 128.
  • 129.
  • 130.
  • 131.
  • 132.
  • 133.
  • 134.
  • 135.
  • 136.
  • 137.
  • 138.
  • 139.
  • 140.
  • 141.
  • 142.
  • 143.
  • 144.
  • 145.
  • 146.
  • 147.
  • 148.
  • 149.
  • 150.
  • 151.
  • 152.
  • 153.
  • 154.
  • 155.
  • 156.
  • 157.
  • 158.
  • 159.
  • 160.
  • 161.
  • 162.
  • 163.
  • 164.
  • 165.
  • 166.
  • 167.
  • 168.
  • 169.
  • 170.
  • 171.
  • 172.
  • 173.
  • 174.
  • 175.
  • 176.
  • 177.
  • 178.
  • 179.
  • 180.
  • 181.
  • 182.
  • 183.
  • 184.
  • 185.
  • 186.
  • 187.
  • 188.
  • 189.
  • 190.
  • 191.
  • 192.
  • 193.
  • 194.
  • 195.
  • 196.
  • 197.
  • 198.
  • 199.
  • 200.
  • 201.
  • 202.
  • 203.
  • 204.
  • 205.
  • 206.
  • 207.
  • 208.
  • 209.
  • 210.
  • 211.
  • 212.
  • 213.
  • 214.
  • 215.
  • 216.
  • 217.
  • 218.
  • 219.
  • 220.
  • 221.
  • 222.
  • 223.
  • 224.
  • 225.
  • 226.
  • 227.
  • 228.
  • 229.
  • 230.
  • 231.
  • 232.
  • 233.
  • 234.
  • 235.
  • 236.
  • 237.
  • 238.

 

责任编辑:佟健 来源: IT168
相关推荐

2013-07-29 14:28:43

JQueryJQuery实现分页分页程序代码

2011-11-09 13:59:27

代码腐烂

2009-06-03 14:42:21

Eclipse调试调试Java程序

2010-07-13 09:29:37

socketUDP协议

2011-11-03 15:44:10

程序员

2009-06-17 14:29:50

java程序代码

2010-01-22 15:09:11

VB.NET下载程序

2010-01-15 10:48:29

C++程序代码

2010-03-23 14:12:43

Python开发Win

2009-08-24 18:06:36

源程序代码C#读取XML文件

2010-01-15 18:46:08

C++程序代码

2009-09-02 18:28:00

C#鼠标位置

2014-01-16 13:36:17

2013-04-22 11:34:30

BadNews恶意程序移动安全

2010-05-28 10:53:07

Linux串口测试工具

2010-07-16 14:22:25

Python teln

2023-11-17 11:55:54

Pythonretrying库

2010-07-21 16:32:14

telnet程序

2021-05-07 09:00:00

JavaScript开发代码

2009-10-27 10:14:54

VB.NET正则表达式
点赞
收藏

51CTO技术栈公众号