gpt4 book ai didi

telnetlib - 如何检查 Telnet 连接是否仍然建立?使用 telnetlib

转载 作者:行者123 更新时间:2023-12-01 06:07:03 24 4
gpt4 key购买 nike

我想检查使用 telnetlib 的连接是否仍然存在。

我这样做的方式是发送 ls命令并检查答案,但我确信必须有更流畅的解决方案。

最佳答案

我从 here 得到了这个想法,所以向他们致敬,代码可能是这样的

def check_alive(telnet_object):
try:
if telnet_object.sock:
telnet_object.sock.send(telnetlib.IAC + telnetlib.NOP)
telnet_object.sock.send(telnetlib.IAC + telnetlib.NOP)
telnet_object.sock.send(telnetlib.IAC + telnetlib.NOP)
return True
except:
pass

这个想法很简单:
  • 如果 close() 被调用 .sock 将为 0,所以我们什么都不做
  • 否则,我们尝试发送一些无害的东西,不应该与底层服务交互,IAC + NOP 是一个很好的候选者。后来编辑:似乎只发送一次是不够的,所以我只做了 3 次,我知道这不是很专业,但是......“如果它看起来很愚蠢,但它有效......比它不愚蠢”
  • 如果一切顺利,我们就会得到“return True”,那么我们就会得到答案,否则,异常将被忽略,并且由于没有返回,我们将得到 None 作为响应

  • 我已经将这种方法用于针对几个 Cisco 路由器的直接和代理(SocksiPy)连接

    关于telnetlib - 如何检查 Telnet 连接是否仍然建立?使用 telnetlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37216064/

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