Python + Telnet基本使用

Python + Telnet基本使用

代码先上:
import telnetlib

# 创建连接对象,链接IP地址
tn = telnetlib.Telnet('想要连接的IP地址')

# 输入命令(需编码.encode())
# b'\n' 为回车
tn.write('输入命令'.encode('utf-8') + b'\n')

# 等待期望的字符出现
tn.read_until(b'期望字符')

# 获取回显并解码(decode())
res = tn.read_very_eager().decode('utf-8')

# 打印
print(res)
使用时可活用read_very_eager(),可达到一定的数据过滤作用 详情请百度

简单的封装

  • 封装一:单条命令获取回显
    def query_node(self, node, tn, wait_time=None):
        """
        查询单条命令获取信息
        :param tn: telnet连接,如上面代码中的tn
        :param node: 命令
        :param wait_time: 捕获回显前的等待时间
        :return: 查询到的回显
        """
        tn.write(node.encode('utf-8') + b'\n')
        time.sleep(2) if wait_time else pass  # 针对单条回显过多,添加等待时间
        out = tn.read_very_eager().decode('utf-8')
        # 回显处理,只保留查询到的结果,过滤掉查询输入字符
        out = out.split(node)[-1].strip()
        self.print(f"{node}   {out}")
        return out
  • 封装二:多条命令获取回显
    def query_nodes(self, nodes, tn, split_value=None, wait_time=None):
        """
        查询多条命令并获取信息
        :param tn: telnet连接,如上面代码中的tn
        :param split_value: 针对相似的信息,进行字符串切割清洗
        :param nodes: 命令列表
        :param wait_time: 捕获回显前的等待时间
        :return: 过滤出的value 值列表
        """
        value_list = []
        for node in nodes:
            tn.write(node.encode('utf-8') + b'\n')
            time.sleep(2) if wait_time else pass  # 针对单条回显过多,添加等待时间
            value = tn.read_very_eager().decode('utf-8')
            if split_value:
                value = value.split(split_value)[-1].strip()
                value = value.split('\r\n')[0].strip()
            else:
                value = value.split(node)[-1].strip()
            value_list.append(value)
            self.print(f"{node}   {value}")
        return value_list
  • 封装三:待续
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值