【问题标题】:PHP connect to Telnet serverPHP 连接到 Telnet 服务器
【发布时间】:2018-12-25 14:52:48
【问题描述】:

我需要连接到服务器并通过 Telnet 发送命令,但在查找如何通过授权连接时遇到了一些麻烦。

我已经使用以下脚本连接,但我仍然需要输入用户名和密码才能访问。

<?php

          $host="xxxxxxxxxxx"; 
    $port = xxxxxxxxxx; // open a client connection 
    $fp = fsockopen ($host, $port, $errno, $errstr); 
    if (!$fp) { 
    $result = "Error: could not open socket connection"; 
    } 
    else { // get the welcome message fgets ($fp, 1024); // write the user string to the socket 
    fputs($fp, $message); // get the result $result .= fgets ($fp, 1024); // close the connection
    fputs ($fp, "END");
    fclose ($fp); // trim the result and remove the starting ?
    $result = trim($result);
    $result = substr($result, 2); // now print it to the browser 
    } ?> 
    Server said: <? echo $result; ?>


    ?>

我一直在四处寻找,甚至在 PHP 文档上,但没有看到使用密码和用户名的方法。

我必须使用 POST 数据来发布我的用户名和密码吗?

【问题讨论】:

  • TELNET 协议 RFC tools.ietf.org/html/rfc854
  • 在输入之前是否需要等待提示出现?见stackoverflow.com/a/6280342/5947043。附言POST数据是什么意思?据我所知,这是一个 HTTP 概念,而不是 telnet。当然,如果套接字上的侦听器是 HTTP 服务器,您可以使用 telnet 连接发送 HTTP 命令,但那是另一回事了。你没有提到你正在连接什么服务或你想要发送什么样的命令
  • @ADyson 这是我在游戏服务器上运行的 VPS。游戏服务器使用 Telnet。
  • Telnet 只是打开一个 TCP 连接。之后您必须使用某些特定的协议来交换消息?有一个用于简单消息的基本 telnet 协议,但您无能为力。可能有一些进一步商定的格式用于构建消息。

标签: php telnet


【解决方案1】:

正如其他人已经说过的,telnet 只是打开一个到服务器的套接字。这也是您对 fsockopen() 的调用所做的事情。您要连接的服务应该有一个关于您下一步可以做什么的定义。

假设连接到 FTP 服务器。建立连接后,您可以将 LIST 命令写入套接字。服务器将识别该命令并将文件列表发送回您的套接字。

在你的情况下,你的交换可能是这样的:

write:  AUTH
read:   OK
write:  USERNAME username
read:   OK
write   PASSWORD password
read:   STATUS OK

【讨论】:

  • 所以我需要做的基本上是编写一个脚本来连接,然后是一个 if 语句,其中包含您在顶部共享的位?至于下一步做什么的定义,我不知道如何找出来。我使用的是我自己的 VPS 和游戏服务器。
  • 在不知道你在做什么的情况下,我想你需要实现从你连接到的服务器读取和写入数据的部分。这通常在某种规范中详细说明。
  • 我将如何使用 PHP 读取 "请输入密码" 行?我相信这是我被挂断的地方
  • 我想你会使用类似 socket_read() 的东西从服务器读取数据。您可能会继续阅读,直到看到行终止符。也许它将是一个换行符 (\n)。如果所有这些都适用,那么您将比较您刚刚读入的内容,看看它是否是“请输入密码”。除此之外,恐怕有关此环境的详细信息太模糊,无法提供更多帮助。
猜你喜欢
  • 2014-03-20
  • 2014-04-05
  • 2017-09-26
  • 2014-06-28
  • 1970-01-01
  • 2016-11-18
  • 2023-03-03
  • 2015-03-31
  • 2019-05-16
相关资源
最近更新 更多