运行环境:

物理机:win10 1903

网络设备:EVE-NG模拟器上运行思科三层路由器

网络设备OS版本:cisco ios(versions 15.6)

python环境:pycharm 3.3

python解析器版本:3.7

实验目的:给R4的lo1口配置地址:2.2.2.2/24

实验括扑:

  1. 因为我的环境较为特殊,Telnetlib要接入的是eve中的虚拟接口,而且eve中的端口都是默认打开的,并且不需要输入账号与密码,也就是说,只要是通过web页面点击设备进行访问,全部都是免Telnet、ssh就能够进入到管理界面(实际上通过web管理下,eve是通过telnet向设备发送命令)。那这样的话就没有办法去模拟真机环境下的Telnet和SSH,所以我就又想了个办法,那我用python先登录到R3,然后在R3上去登录其他路由器(比如R4),这样不也可以吗?下面我将这样来演示,先登录到R3,再从R3上去Telnet R4。退出也是通过捕捉关键字来实现退出。
  2. 因为做这个实验时间本人环境等问题还没有解决,后面想到了更好的方法将在后面展示,本篇文章将对所存在问题进行详细描述;本人写作能力有限,而且还是新手、文章可能难以理解,望各位见谅。
  3. 下面的每台三层交换机都默认配置了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)的更多相关文章

  1. python网络自动化运维之环境搭建(EVE-NG+pycharm)

    参考了很多资料,发现现在很多环境用的都是GNS3加linux下的python,几乎没有是用EVE-NG加上pycharm的教程,EVE的功能如此强大,存在的教程却较少,这里我出一篇教程供使用EVE作为 ...

  2. python网络自动化运维paramiko实验

    运行环境: 物理机:win10 1903 网络设备:EVE-NG模拟器上运行思科三层路由器 网络设备OS版本:cisco ios(versions 15.6) python环境:pycharm 3.5 ...

  3. 【实战小项目】python开发自动化运维工具--批量操作主机

    有很多开源自动化运维工具都很好用如ansible/salt stack等,完全不用重复造轮子.只不过,很多运维同学学习Python之后,苦于没小项目训练.本篇就演示用Python写一个批量操作主机的工 ...

  4. 【NetDevops】网络自动化运维--1获取用户基本信息

     版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.  之前博客的云主机到期了没续费,被删啦最重要的是没有备份!此处省略几个字.....      ...

  5. Python在自动化运维时经常会用到的方法

    得到当前工作目录,即当前Python脚本工作的目录路径:os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一个文件:os.remove() 删除多个目录: ...

  6. python自动化运维之路~DAY5

    python自动化运维之路~DAY5 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.模块的分类 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数 ...

  7. python自动化运维篇

    1-1 Python运维-课程简介及基础 1-2 Python运维-自动化运维脚本编写 2-1 Python自动化运维-Ansible教程-Ansible介绍 2-2 Python自动化运维-Ansi ...

  8. Python+Django+ansible playbook自动化运维项目实战☝☝☝

    Python+Django+ansible playbook自动化运维项目实战☝☝☝  一.入门引导 DevOPSDevOps(英文Development和Operations的组合)是一组过程.方法 ...

  9. Python自动化运维:技术与最佳实践 PDF高清完整版|网盘下载内附地址提取码|

    内容简介: <Python自动化运维:技术与最佳实践>一书在中国运维领域将有“划时代”的重要意义:一方面,这是国内第一本从纵.深和实践角度探讨Python在运维领域应用的著作:一方面本书的 ...

随机推荐

  1. 学大数据一定要会Java开发吗?

    Java是目前使用广泛的编程语言之一,具有的众多特性,特别适合作为大数据应用的开发语言.Java语言功能强大和简单易用,不仅吸收了C++语言的各种优点还摒弃了C++里难以理解的多继承.指针等概念. J ...

  2. 浏览器有别_HTTP报文的回车换行

    本来以为浏览器HTTP报文的生成应该是完全一致的.但最近在做一个项目的时候,发现Safari和Chrome提交同一份表单,后端的处理结果不一致.看提交结果呢,是因为Safari多了个回车.由于原项目的 ...

  3. Java:AQS 小记-2(ReentrantLock)

    Java:AQS 小记-2(ReentrantLock) 整体结构 ReentrantLock 类图 AbstractOwnableSynchronizer 类 public abstract cla ...

  4. beta事后分析

    设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 软件要解决的问题是是开发一个简易方便,为用户带来便捷且功能齐全的表情包管理小程序: 预期的典型用户 ...

  5. [对对子队]会议记录4.10(Scrum Meeting 1)

    本次每日例会的开会时间是4月10日晚上20:00,使用腾讯会议作为开会工具. 今天已完成的工作 何瑞 ​ 工作内容:制作UI界面的指令编辑系统,已大致实现指令的衔接 ​ 相关issue:实现用户指令编 ...

  6. [Beta]the Agiles Scrum Meeting 6

    会议时间:2020.5.20 21:00 1.每个人的工作 今天已完成的工作 成员 已完成的工作 issue yjy 帮助成员解决配置环境问题 tq 增加功能:添加多个评测机 评测部分增加更多评测指标 ...

  7. mongodb的聚合操作

    在mongodb中有时候我们需要对数据进行分析操作,比如一些统计操作,这个时候简单的查询操作(find)就搞不定这些需求,因此就需要使用  聚合框架(aggregation) 来完成.在mongodb ...

  8. 2021.10.7考试总结[NOIP模拟71]

    信心赛,但炸了.T3SB错直接炸飞,T4可以硬算的组合数非要分段打表求阶乘..T2也因为一个细节浪费了大量时间.. 会做难题很好,但首先还是要先把能拿的分都拿到. T1 签到题 结论:总可以做到对每个 ...

  9. 2021.8.16考试总结[NOIP模拟41]

    T1 你相信引力吗 肯定是单调栈维护.但存在重复值,还是个环,不好搞. 发现取区间时不会越过最大值,因此以最大值为断点将环断为序列.在栈里维护当前栈中有多少个与当前元素相等的元素,小分类讨论一下. 最 ...

  10. 线路由器频段带宽是是20M好还是40M好

    无线路由器频段带宽还是40M好. 40M的信号强,速度快.   1.20MHz在11n的情况下能达到144Mbps带宽.穿透性不错.传输距离较远 40MHz在11n的情况下能达到300Mbps带宽.穿 ...