gpt4 book ai didi

具有不同结果的 Python Telnet 端口 23 与 223

转载 作者:太空宇宙 更新时间:2023-11-04 01:38:10 26 4
gpt4 key购买 nike

当我运行此 Python 3.1 代码以使用 telnetlib 访问设备时,它按预期工作:

import telnetlib

tn = telnetlib.Telnet("15.39.100.126", "23")
tn.write(b"menu\n")
tn.write(b"0\n")
print(tn.read_all().decode('ascii'))

然后,我将此代码(与上面非常相似,但此端口呈现不同的菜单)运行到端口 223,但什么也得不到:

import telnetlib

tn = telnetlib.Telnet("15.39.100.126", "223")
tn.write(b"ipconfig\n")
tn.write(b"exit\n")
print(tn.read_all().decode('ascii'))

手动运行到 223 的 telnet session 时,它会报告:

WinCEPocket CMD v 6.00
\>

有没有人在同一台设备但端口不同的情况下使用 Python 遇到过类似的不同 telnet 行为,或者有人知道我需要使用 WinCE Pocket 采取什么特殊方法吗?端口 23 不使用 WinCE Pocket——只有端口 223 使用。两个 telnet 程序在同一个 Windows 命令 shell 中运行得同样好。

最佳答案

telnet 命令本身对端口 23 和其他端口做了不同的事情:主要是它实现了 telnet 选项协商。 telnetlib 的目的是为您实现 Telnet 协议(protocol)(选项协商等),以便您可以与端口 23 上的服务交互,该服务期望在另一端使用 telnet。由于 telnet 该命令不会对端口 223 执行这些操作,因此您的设备可能不期望 telnet 选项协商,并且被 telnetlib 的初始化(发送 telnet 选项)搞糊涂了带内)。

解决方案是使用普通 socket 与端口 223 交互。SO 上已经有很多这样的例子。

关于具有不同结果的 Python Telnet 端口 23 与 223,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7774139/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com