Python网络编程自动化(HCIA)

您所在的位置:网站首页 网络编程技术基础 Python网络编程自动化(HCIA)

Python网络编程自动化(HCIA)

2024-03-14 21:42| 来源: 网络整理| 查看: 265

一、网络编程的产生背景

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后就和字符区分开了。

最后要把字节转换为字符串供阅读:

把字节转换为字符串,打印出来:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3