【问题标题】:How can I run a Python program over telnet?如何通过 telnet 运行 Python 程序?
【发布时间】:2010-12-18 00:20:15
【问题描述】:

如何运行 Python 程序,使其输出其 STDOUT 并将其 STDIN 输入到远程 telnet 客户端/从远程 telnet 客户端输入?

程序所做的只是打印出文本,然后反复等待 raw_input()。我希望远程用户无需 shell 访问即可使用它。可以是单线程/单用户。

【问题讨论】:

  • 这是在 Unix 还是 Windows 环境下?

标签: python telnet


【解决方案1】:

在 Unix 系统上,您可以为此使用 inetd。它会为您打开网络连接,因此您的程序将按原样运行。

【讨论】:

  • 我用 xinetd 尝试过,但由于某种原因,它似乎阻止了 python 写入文件。就像我可以打开一个文件进行追加,这将创建文件,但如果我什至在打开文件后立即写一个“到这里”,文件大小仍然为 0。在 python 中运行相同的内容直接按预期工作。奇怪。
【解决方案2】:

将 Python 脚本放入该用户的 shell。 (或者如果这不起作用,请将其包装在 bash 脚本甚至可执行文件中)。

(您可能必须将其放入 /etc/shells(或等价物)中)

【讨论】:

    【解决方案3】:

    如果您不需要完整的 telnet 功能,您可以使用套接字。

    查看标准 python 库中的 Socket Server 模块。 它可以让您轻松编写一个程序来侦听端口的输入/输出。

    它不支持正确的 telnet 协议协商,但你可能不需要它来做你正在做的事情。

    【讨论】:

      【解决方案4】:

      您可以创建一个新的 linux 用户并将他们的 shell 设置为您的脚本。

      然后当他们远程登录并输入用户名/密码时,程序将运行而不是 bash 或任何默认 shell。

      【讨论】:

        猜你喜欢
        • 2014-11-24
        • 2016-09-18
        • 1970-01-01
        • 2021-09-25
        • 2020-10-03
        • 2019-02-01
        • 2019-01-31
        • 2012-04-21
        • 2010-12-26
        相关资源
        最近更新 更多