本文介绍了如何检查Telnet连接是否仍然建立?使用telnetlib的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想检查使用telnetlib的连接是否仍在连接中.
I'd like to check if a connection using the telnetlib is still up.
我的方法是发送ls
命令并检查答案,但我确定必须有一个更平滑的解决方案.
The way I do it is to send a ls
command and check the answer, but I'm sure there must be a smoother solution.
推荐答案
我从此处所以对他们表示敬意,代码可能是这样的
I've got the idea from here, so kudos to them, the code could be something like this
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是一个不错的选择. LaterEdit:似乎只发送一次是不够的,所以我只做了3次,我知道这不是很专业,但是...如果看起来很愚蠢,但是可以工作……不是愚蠢的"
- 如果一切顺利,我们将得到"return True",否则我们将得到答案,否则,异常将被忽略,并且由于没有返回,我们将获得None作为响应
我已经将这种方法用于与几个Cisco路由器的直接和代理(SocksiPy)连接
I've used this method for both direct and proxied(SocksiPy) connections against a couple of Cisco routers
这篇关于如何检查Telnet连接是否仍然建立?使用telnetlib的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!