【问题标题】:Telnet Client using PHP使用 PHP 的 Telnet 客户端
【发布时间】:2012-04-12 07:41:45
【问题描述】:

这是我的代码:

$socketConnection = @fsockopen ( "127.0.0.1", "23", $errorNumber, $errorString, 30 );
if ( ! $socketConnection )
{
    print '<b>Connection Failed</b><br />' . $errorString . '<br />' . $errorNumber;
}
else
{
    //stream_set_blocking ( $socketConnection, 0 );
    //stream_set_timeout ( $socketConnection, 10 );
    print '<b>Connection Success!</b><br />';
    fputs($socketConnection,'\r');
    sleep(1);
    $buffer = fread ( $socketConnection, 20 );
    $out='';
    for ( $i=0; $i < 20; $i++ )
    {
        $out .= $buffer [ $i ] ;
    }
        $response = trim ( preg_replace( "/^.*?\n(.*)\n[^\n]*$/", "$1", $out ) );
        echo $response;
        //$response = bin2hex($response);
        //hex2ascii('ff:fd:25:ff:fb:01:ff:fb:03:ff:fd:27:ff:fd:1f:ff:fd:00:ff:fb');
    fclose ( $socketConnection );
}

现在,当我执行代码时,我得到了输出:

ÿý%ÿûÿûÿý'ÿýÿý

没有别的。可能是什么问题?我怎样才能解决这个问题。我在win7上使用xampp 2.5版

此外,我在我的系统上安装了 win7 telnet 服务器,我可以通过 telnet 命令远程登录它。

我用腻子远程登录,这是我得到的:

【问题讨论】:

  • 使用fsockopen可以简单地编写一个telnet客户端。
  • 你在远程登录什么?什么类型的设备/服务器?您不是只是误解了收到的数据吗?
  • @castor:这就是我要你的。我是套接字编程的新手,无法解释结果。另外我在我的问题中提到了 telnet 服务器是 Windows 7 附带的服务器。
  • @shiplu.mokadd.im:我尝试过简单地使用 fsockopen,它确实创建了连接,但之后我无法从服务器获得响应,或者我应该说我不知道​​如何使用 fread 获取响应。
  • 你只需要知道你应该从服务器得到什么。用putty试试,然后分析。我无法回答你的问题,因为你正在处理的细节不够详细。

标签: php windows-7 xampp telnetlib


【解决方案1】:

这是 telnet 客户端“自动协商”的一部分...

如果你将字符转换为 HEX 会有所帮助,然后参考:

The TELNET Protocol -- KB 231866

哦,即使你说的是微软,:

www.eventhelix.com - EventStudio - TCP/IP Protocol Sequence Diagram Examples

具体来说,这些可以帮助您形象化:

高级 Telnet 客户端和服务器协议序列图

Telnet 协议上下文图 -- EventHelix.com/EventStudio 2.0

您可以在 eventhelix.com 页面上找到。

(注意:很抱歉最后两个没有链接...,我的代表在这里仍然太低... ;-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-31
    • 2019-08-12
    • 2013-02-15
    • 2016-08-01
    • 2011-04-30
    • 2011-09-17
    • 2014-11-19
    • 2010-10-28
    相关资源
    最近更新 更多