其他
概述
参考:
Telnet
参考:
Python Telnet 库
https://docs.python.org/3/library/telnetlib.html 已弃用,将在 3.13 删除
Go Telnet 库
https://github.com/ebarkie/telnet 可以实现 Telnet 服务端
https://github.com/reiver/go-telnet
https://blog.csdn.net/wangkai_123456/article/details/70167943
Telnet 仅仅是基于 TCP 的类似 Echo 逻辑,建立 TCP 连接后,Telnet 服务端需要与客户端协商一些内容,
而每个实现 Telnet 的服务端都不太一样,没有一种通用的客户端程序可以完美适配所有 Telnet 服务端(除非是可交互式的,客户端可以仅显示服务端响应内容),比如
from telnetlib import Telnet
with Telnet('0.0.0.0', 23) as tn:
tn.interact()
上面这段代码,可以连接到 Linux 的 Telnet,但是无法处理 HDF 暴露的 Telnet 服务。
而 go 中简单的 net.Dial() 无法实现 RFC 854 标准,如果连接了 linux 中的 Telnet 服务,返回值解码为字符串的话是乱码那,用 fmt.Printf("%q", string(buf[:n]))
解码则是 "\xff\xfd\x18\xff\xfd \xff\xfd#\xff\xfd'"
,原因详见: https://stackoverflow.com/questions/72883700/telnet-client-response-how-to-decode-it ,但是连接 HDF 暴露的 Telnet 则无问题(因为没有其他约定,只是单纯的基于 TCP 的请求、返回)
https://www.reddit.com/r/golang/comments/16707jg/any_telnet_client/ 这里也有人在找现成的 telnet 库,但是根据上面了解到的内容,其实没有通用的 telnet 库
只有 telnet 程序那种交互式的工具可以连接通用的 Telnet 服务端,因为 telnet 程序本身仅仅是读取 Telnet 响应的内容然后等待用户输入。但是具体读取到哪里停止呢?
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.