如何检查Telnet连接是否仍然建立?使用telnetlib [英] How to check if Telnet connection is still established? using telnetlib

查看:145
本文介绍了如何检查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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆