【问题标题】:Make PHP respond to telnet (PHP Telnet Server)使PHP响应telnet(PHP Telnet Server)
【发布时间】:2011-12-20 18:29:18
【问题描述】:

我有一个项目要做,它是这样的:

当您打开 telnet 控制台并 telnet 到我的服务器时,PHP 应响应: “你好,你叫什么名字?”

然后你输入你的名字等等。我怎样才能在 PHP 中做到这一点?有没有可能?

【问题讨论】:

  • php 不,使用外壳,是的。让人们为一些琐碎的事情而信奉您的服务器不是一个好主意,为什么不为“它”建立一个网站呢?
  • 你的意思是 shell() 命令?
  • 不,我的意思是 Tenet shell,你可能不应该使用它
  • 没看到,我在 x10hosting 上。不是我自己的机器。我将它用作以后重要的项目。
  • 然后我会登录并输入“rm -r”,我认为你不明白你所问的含义。为此创建网页\表单\应用程序有什么问题?

标签: php shell console telnet


【解决方案1】:

【讨论】:

  • 你能举个例子吗?我不确定如何使用它。
【解决方案2】:

Actual TELNET 可能有点难以纠正;有很多控制序列用于影响终端如何显示其内容。

如果您只是想编写一个人们可以通过 TELNET 使用的服务,那么最好使用 现有的 TELNET 服务器(Ubuntu 有几个可用的软件包,用于简单的 TELNET:@987654327 @、telnetd;对于加密的 TELNET:telnetd-ssl;对于经过 Kerberos 验证的 TELNET:heimdal-serverskrb5-telnetd.) 提供 TELNET 功能,并将您的 PHP 程序设置为您希望所有人使用的任何用户的登录 shell登录为。 (有关登录 shell 的信息,请参阅 passwd(5)。)

如果你想自己做所有的socket操作,那么你需要使用BSD的sockets支持; create a socketbind a server name to the socketlisten on the socket,当有新连接进入时,fork a new process to handle the new clientaccept the new connection

一旦你有了一个新的进程和一个连接的客户端,你就可以使用标准的读写操作来向客户端发送和接收数据。如果您真的想支持完整的 TELNET 规范,则需要一些巧妙的编程。如果您不介意无法访问高级终端功能(例如由readline(3)ncurses(3)slang 提供),那么您可能需要在第八位打开的情况下删除字符以摆脱 TELNET控制客户的角色。 (我没有尝试过这个,因为当我想要一个clean主机之间未加密和未经身份验证的连接时,我总是使用netcat 工具。)

【讨论】:

  • 请注意,“fork a new process”并不是绝对必要的,但它确实使处理多个连接的客户端变得容易得多。
猜你喜欢
  • 2010-12-08
  • 2013-10-17
  • 2010-10-28
  • 2016-08-01
  • 2013-01-01
  • 1970-01-01
  • 2019-01-17
  • 2015-09-07
  • 2011-10-30
相关资源
最近更新 更多