运行环境:

物理机: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. DL4J实战之五:矩阵操作基本功

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  2. Mybatis 二级缓存应用 (21)

    [MyBatis 二级缓存] 概述:一级缓存作用域为同一个SqlSession对象,而二级缓存用来解决一级缓存不能夸会话共享,作用范围是namespace级,可以被多个SqlSession共享(只要是 ...

  3. 用css写三角形

    html部分 <div class="triangle></div> css部分 .triangle{ width:0; height:0; overflow:hid ...

  4. the Agiles Scrum Meeting 4

    会议时间:2020.4.12 20:00 1.每个人的工作 今天已完成的工作 yjy:基本完成广播功能,修复bug issues:小组任务1-增量开发组 Bug:冲刺 wjx:继续实现注销功能的后端 ...

  5. elasticsearch使用ik中文分词器

    elasticsearch使用ik中文分词器 一.背景 二.安装 ik 分词器 1.从 github 上找到和本次 es 版本匹配上的 分词器 2.使用 es 自带的插件管理 elasticsearc ...

  6. 并发编程从零开始(九)-ConcurrentSkipListMap&Set

    并发编程从零开始(九)-ConcurrentSkipListMap&Set CAS知识点补充: 我们都知道在使用 CAS 也就是使用 compareAndSet(current,next)方法 ...

  7. 简说各种wifi无线协议的传输速率

    简说各种wifi无线协议的传输速率 acwifi.net 发布于 2016-10-26 分类:路由器评测 阅读(59953) 评论(1) 802.11ad 60G无线传输,这是未来的方向,先不谈这个. ...

  8. 『学了就忘』Linux基础 — 15、了解Linux系统的目录结构

    目录 1.一级目录说明 (1)一级目录列表 (2)/bin/和/sbin/目录说明 (3)/boot/目录说明 (4)/lib/和/lib64/目录说明 (5)/lost+found/目录说明 (6) ...

  9. analysis_screencap

    #!/usr/bin/env pythonfrom PIL import Imageimg = Image.open("./screen.png")maps = [[] for i ...

  10. nohup java -jar xx.jar & ,关闭窗口后退出进程

    nohup java -jar dw-report..jar > dw-report.log  & 自动退出命令在后台运行 xx.jar程序 明明已经加了"&" ...