python网络自动化运维之telnetlib实验(EVE-NG+pycharm)
2021/11/12 9:40:20
本文主要是介绍python网络自动化运维之telnetlib实验(EVE-NG+pycharm),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
运行环境:
物理机:win10 1903
网络设备:EVE-NG模拟器上运行思科三层路由器
网络设备OS版本:cisco ios(versions 15.6)
python环境:pycharm 3.3
python解析器版本:3.7
实验目的:给R4的lo1口配置地址:2.2.2.2/24
实验括扑:
- 因为我的环境较为特殊,Telnetlib要接入的是eve中的虚拟接口,而且eve中的端口都是默认打开的,并且不需要输入账号与密码,也就是说,只要是通过web页面点击设备进行访问,全部都是免Telnet、ssh就能够进入到管理界面(实际上通过web管理下,eve是通过telnet向设备发送命令)。那这样的话就没有办法去模拟真机环境下的Telnet和SSH,所以我就又想了个办法,那我用python先登录到R3,然后在R3上去登录其他路由器(比如R4),这样不也可以吗?下面我将这样来演示,先登录到R3,再从R3上去Telnet R4。退出也是通过捕捉关键字来实现退出。
- 因为做这个实验时间本人环境等问题还没有解决,后面想到了更好的方法将在后面展示,本篇文章将对所存在问题进行详细描述;本人写作能力有限,而且还是新手、文章可能难以理解,望各位见谅。
- 下面的每台三层交换机都默认配置了Telnet和SSH,Telnet用户名是python,密码是123,SSH用户名是ccie,密码是cisco
以下代码参考《网络工程师的python之路》这本书:
import telnetlib #导入Telnetlib模块 host = "192.168.142.128" user = "python" #定义四个变量,分别是地址、用户名、密码、和退出字符串 password = "123" enter = "enter" exit_telnet = "exit" tn = telnetlib.Telnet(host,32771) #赋值tn,尝试以Telnet登录到192.168.142.128,32771。 tn.write(b"\r\n") #输入换行符,等于输入enter键。进入用户模式 tn.write(b"en\n") #进入R3的特权模式 tn.read_until(b"Password: ") #用read_until检测关键字:Password tn.write(password.encode('ascii') + b"\n") #当符合关键字条件之后,输入用户名,并用\n换行 tn.write(b"telnet 192.168.2.12\n") #利用python将Telnet到R4的命令发送给R3 tn.read_until(b"Username: ") #登录到R4后,会提示Username,跟前面一样,读取关键字 tn.write(user.encode('ascii') + b"\n") tn.read_until(b"Password: ") #登录到R4后,读取关键字,并输入密码 tn.write(password.encode('ascii') + b"\n") # ----------------------------------------下面的配置都是网工烂熟于心的配置了,这里就不再介绍--------- tn.write(b"en\n") tn.write(b"123\n") tn.write(b"conf t\n") tn.write(b"int lo1\n") tn.write(b"ip add 2.2.2.2 255.255.255.0\n") tn.write(b"do sh ip int br\n") tn.write(b"end\n") tn.write(b"exit\n") tn.read_until(b"[Connection to") #检测是否退出了R4的Telnet,这里只需检测是否为[Connection开头即可。 tn.write(exit_telnet.encode('ascii') + b"\n") #当检测到已经退出R4的Telnet,说明已经退回到R3的特权模式。这里再次输入exit退出。 tn.close() print(tn.read_all().decode('ascii')) #用read_all方法将登录SW1后执行命令的所有过程都记录下来,并通过print打印出来 #我觉得最有可能的是,要进行打印的字符串pycharm无法识别,导致只显示一个1.
最终效果:
这篇关于python网络自动化运维之telnetlib实验(EVE-NG+pycharm)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-13python项目部署
- 2025-01-03用FastAPI掌握Python异步IO:轻松实现高并发网络请求处理
- 2025-01-02封装学习:Python面向对象编程基础教程
- 2024-12-28Python编程基础教程
- 2024-12-27Python编程入门指南
- 2024-12-27Python编程基础
- 2024-12-27Python编程基础教程
- 2024-12-27Python编程基础指南
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门