当前位置:   article > 正文

Python + Telnet基本使用_python telnet

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
使用时可活用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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 封装二:多条命令获取回显
    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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 封装三:待续
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号