赞
踩
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)
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。