Python基础教程:用Python怎么telnet到网络设备
0.前言
Telnet协议属于TCP/IP协议族里的一种,对于我们这些网络攻城狮来说,再熟悉不过了,常用于远程登陆到网络设备进行操作,但是,它的缺陷太明显了,就是不安全,信息明文传送,极容易被攻击窃取信息,不推荐使用,但本节我还是先从它入手哈。
1. 测试环境及关键代码解释
1.1 简单测试环境
- 使用python3环境
- 使用内置telnetlib模块
- 简单的实验环境
说明:
cmd.txt文件里面命令如下:
terminal length 0
show clock
show ip interface brief
list.txt文件里面的IP如下:
192.168.1.101
192.168.1.102
192.168.1.103
1.2 关键代码
import xx:导入模块
class xx:定义类
def xx: 定义函数
try-except :处理可能引发的异常
tn.read_until(expected, timeout=None):等待预期字符串或等待超时
tn.write(buffer):写入的字符串(意思发送给命令给设备)
tn.expect(list, timeout=None):读显,list采用正则表达式(意思把执行过程显示出来)
tn.read_very_eager():读显(意思把执行过程显示出来)
tn.open(host, port=0[, timeout]):连接主机
tn.close():关闭连接
Tips:终端与网络设备交付的信息是以byte类型,所以要把终端上的字符串encode编码转换为byte对象,网络设备回显的byte信息要decode解码。
2. 完整代码
'''
欢迎关注:'333'
此平台是网路工程师个人日常技术、项目案例经验分享,
为巩固及提升技术能力乃至共享所学所知技术
也欢迎各位工程师一起分享、一起成长。
'''
#!/usr/bin/env python
#coding:utf-8
'导入模块'
from telnetlib import Telnet
import time
import logging
'定义类'
class TelnetClient():
'初始化属性'
def __init__(self):
self.tn = Telnet()
'定义login_host函数,用于登陆设备'
def login_host(self,ip