Python网络编程自动化(HCIA)
一、网络编程的产生背景
1、背景
2、网络自动化
二、自动化开源工具以及python中telnetlib库
1、开源工具
2、Telnetlib
三、python网络编程实战
1、网络拓扑
2、python代码
四、代码解析以及python基础知识
学习目标:
1、网络编程的产生背景
2、自动化开源工具以及python中telnetlib库
3、python网络编程实战
4、代码解析以及python基础知识
一、网络编程的产生背景
1、背景
随着虚拟化和云化时代,部署业务很快,但是网络也跟上快速部署,网络自动化变得越来越重要了。
网络编程和自动化就是简化网工的配置、管理、监控和操作等相关工作,提高工程师部署和运维效率。
网络基础不扎实,python(shell也可以,设备支持python好一些)网络编程也不会太强,自动化只是一个锦上添花的效果。
传统网络设备多、操作繁琐、效率低,大多数的配置都一样,只有少部分像OSPF宣告路由反掩码有时候会改变,这个时候用编程的思想就是把这些会改变的定义为变量。
2、网络自动化
网络自动化就是通过工具实现网络自动化部署、运行和维护,减少对“人”的依赖,原本10个人的成本,现在通过自动化只需要5个人的成本,对企业来说能减少成本,对于工程师来说部署、维护会简单很多,同时也会增加薪酬(是因为会减少一部分人),这就对工程师的个人水平要求比较高了。
二、自动化开源工具以及python中telnetlib库
1、开源工具
业界有很多实现自动化的开源工具,例如:Ansible(红帽RCHE有学)、saltstack、puppet、chef等,新时代的网工需要具备一定的代码编程能力(编程是日积月累形成的,先做到再做好)。
首先要去了解Python的基本语法。
2、Telnetlib
是python库中的一个模块,实现telnet这类功能,进行配置获取和输入。
三、python网络编程实战
1、网络拓扑
2、python代码
importtelnetlib#导入telnet模块(网工专用)
importtime#导入时间模块
huawei_router='192.168.1.222'#定义一个设备变量,未来要登录到的路由器IP
huawei_user='telnet'#通过变量定义账号
huawei_pass='huawei@123'#通过变量定义密码(存在密码泄露风险,可以通过telnetlib中一个方法使用手动输入)
#方法就是在模块中具体实现具体功能的作用
huawei_telnet=telnetlib.Telnet(huawei_router)#定义一个对象通过Telnet方法,获取登录telnet的会话
#执行后就是命令telnet192.168.1.222
huawei_telnet.read_until(b'Username:')#read_until方法就是读到这个信息,接下来写一段信息
telnet后遇到设备的提示是什么,然后下一步输入用户名+回车
huawei_telnet.write(huawei_user.encode('ascii')+b"\n")
huawei_telnet.read_until(b'Password:')
huawei_telnet.write(huawei_pass.encode('ascii')+b"\n")
huawei_telnet.write(b'screnn-length 0 temporary\n')#screnn-length0temporary(只能在vty下敲)不用分屏一次全部输出
huawei_telnet.write(b'discu\n')#再显示全部配置一次性显示,不会有More,用空格显示
time.sleep(1)
print(huawei_telnet.read_very_eager().decode('ascii'))
huawei_telnet.close()
华为项目有现成的python模板可以使用
手动添加虚拟网卡,添加后需要重启才能生效(尽量使用模拟器的虚拟网卡):
四、代码解析以及python基础知识
万国码(只定义了标准,没有定义编码),覆盖全世界所有文字符号:
字符串变字节前边加b,如果是变量的话,变量.encode定义:
回车也是前边加b,b"\n"。
加b是因为telnet协议交互只认字节,在python3.3后就和字符区分开了。
最后要把字节转换为字符串供阅读:
把字节转换为字符串,打印出来:
Python网络编程自动化(HCIA)相关推荐
- 读书笔记 - -《Python网络编程》重点
文章目录 一.前言 二.客户/服务器网络编程简介 三.UDP 3.1 端口号 3.2 套接字 3.3 UDP分组 3.4 小结 四.TCP 4.1 TCP工作原理 4.2 绑定接口 4.3 死锁 4. ...
- python 网络编程_Python网络编程(原书第2版)
Python网络编程(原书第2版) 作者:(美)埃里克·周(Eric Chou) 著 出版日期:2019年06月 文件大小:54.50M 支持设备: ¥68.00 适用客户端: 言商书局 iPad/i ...
- python网络编程--socket简单实现
python网络编程 ...
- python网络编程-异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-03
python网络编程-异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-03 参考文章: (1)python网络编程-异常处理-异常捕获-抛出异常-断言-自 ...
- python编程入门指南怎么样-学习python网络编程怎么入门
第一部分底层网络学习 Python提供了访问底层操作系统Socket接口的全部方法,需要的时候这些接口可以提供灵活而强有力的功能. (1)基本客户端操作 在<python 网络编程基础>一 ...
- python编程实例下载-python网络编程之文件下载实例分析
本文实例讲述了python网络编程之文件下载实现方法.分享给大家供大家参考.具体如下: 真是越看越喜欢python啊,想要了解它提供的http和ftp下载功能,原来是如此的简单. 1.相应模块 ftp ...
- python网络编程基础(线程与进程、并行与并发、同步与异步、阻塞与非阻塞、CPU密集型与IO密集型)...
python网络编程基础(线程与进程.并行与并发.同步与异步.阻塞与非阻塞.CPU密集型与IO密集型) 目录 线程与进程并行与并发同步与异步阻塞与非阻塞CPU密集型与IO密集型 线程与进程 进程 前言 ...
- python网络编程案例_Python 网络编程_python网络编程基础_python高级编程
Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的 ...
- python 网络编程 问题记录
191223 python 网络编程 套接字的初使用 在本机配置服务端和客户端后,运行没问题:将服务端代码弄到另一台电脑上后启动,用原来的电脑去连接它,就连不上了,不知啥原因,是ip自动获取和指定ip ...
最新文章
- vs显示不是有效的window32_玩转“黑科技”,这才是选购“户外显示屏”的正确方式!...
- 教遗传算法人工智能玩超级马里奥大陆
- 【学习记录】无法找到“Procedural Foliage Spawner”
- 20151024学习内容:安全相关
- About The FTP
- nvidia-smi命令显示NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver
- 《Python编程实战:运用设计模式、并发和程序库创建高质量程序》—— 第1章 Python的创建型设计模式...
- linux 父子进程 资源_linux 父子进程 资源_实验4 Linux父子进程同步
- 归并排序 c++_数据结构:排序(4)||有序表的归并(归并排序)、基数排序
- Yii2性能优化之:缓存依赖
- JavaScript学习(五十三)—借用构造方法继承
- tcp/ip ---IP路由选择
- STP实验(指定特定交换机为根桥)
- 下两个网段转发的路由设置_一台路由器下如何实现多个网络互通
- pmp考试有题库么?有多少题?
- 【Linux驱动开发】PS2游戏手柄驱动开发与输入子系统框架
- D3 天眼查 股权结构图
- Google MLOps白皮书:MLOps实践者指南Part I MLOps生命周期及核心能力
- 关于 tchar.h
- 刷近两年新低 人民币汇率破7 意味着什么