一、网络编程的产生背景

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)相关推荐

  1. 读书笔记 - -《Python网络编程》重点

    文章目录 一.前言 二.客户/服务器网络编程简介 三.UDP 3.1 端口号 3.2 套接字 3.3 UDP分组 3.4 小结 四.TCP 4.1 TCP工作原理 4.2 绑定接口 4.3 死锁 4. ...

  2. python 网络编程_Python网络编程(原书第2版)

    Python网络编程(原书第2版) 作者:(美)埃里克·周(Eric Chou) 著 出版日期:2019年06月 文件大小:54.50M 支持设备: ¥68.00 适用客户端: 言商书局 iPad/i ...

  3. python网络编程--socket简单实现

    python网络编程                                                                                           ...

  4. python网络编程-异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-03

    python网络编程-异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-03 参考文章: (1)python网络编程-异常处理-异常捕获-抛出异常-断言-自 ...

  5. python编程入门指南怎么样-学习python网络编程怎么入门

    第一部分底层网络学习 Python提供了访问底层操作系统Socket接口的全部方法,需要的时候这些接口可以提供灵活而强有力的功能. (1)基本客户端操作 在<python 网络编程基础>一 ...

  6. python编程实例下载-python网络编程之文件下载实例分析

    本文实例讲述了python网络编程之文件下载实现方法.分享给大家供大家参考.具体如下: 真是越看越喜欢python啊,想要了解它提供的http和ftp下载功能,原来是如此的简单. 1.相应模块 ftp ...

  7. python网络编程基础(线程与进程、并行与并发、同步与异步、阻塞与非阻塞、CPU密集型与IO密集型)...

    python网络编程基础(线程与进程.并行与并发.同步与异步.阻塞与非阻塞.CPU密集型与IO密集型) 目录 线程与进程并行与并发同步与异步阻塞与非阻塞CPU密集型与IO密集型 线程与进程 进程 前言 ...

  8. python网络编程案例_Python 网络编程_python网络编程基础_python高级编程

    Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的 ...

  9. python 网络编程 问题记录

    191223 python 网络编程 套接字的初使用 在本机配置服务端和客户端后,运行没问题:将服务端代码弄到另一台电脑上后启动,用原来的电脑去连接它,就连不上了,不知啥原因,是ip自动获取和指定ip ...

最新文章

  1. vs显示不是有效的window32_玩转“黑科技”,这才是选购“户外显示屏”的正确方式!...
  2. 教遗传算法人工智能玩超级马里奥大陆
  3. 【学习记录】无法找到“Procedural Foliage Spawner”
  4. 20151024学习内容:安全相关
  5. About The FTP
  6. nvidia-smi命令显示NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver
  7. 《Python编程实战:运用设计模式、并发和程序库创建高质量程序》—— 第1章 Python的创建型设计模式...
  8. linux 父子进程 资源_linux 父子进程 资源_实验4 Linux父子进程同步
  9. 归并排序 c++_数据结构:排序(4)||有序表的归并(归并排序)、基数排序
  10. Yii2性能优化之:缓存依赖
  11. JavaScript学习(五十三)—借用构造方法继承
  12. tcp/ip ---IP路由选择
  13. STP实验(指定特定交换机为根桥)
  14. 下两个网段转发的路由设置_一台路由器下如何实现多个网络互通
  15. pmp考试有题库么?有多少题?
  16. 【Linux驱动开发】PS2游戏手柄驱动开发与输入子系统框架
  17. D3 天眼查 股权结构图
  18. Google MLOps白皮书:MLOps实践者指南Part I MLOps生命周期及核心能力
  19. 关于 tchar.h
  20. 刷近两年新低 人民币汇率破7 意味着什么

热门文章

  1. 前后端交互node服务器
  2. Python学习:python数组模块用法
  3. 二月、三月校招面试复盘总结(二)
  4. moment.js 时间处理类库--时间戳和时间格式相互转换
  5. Camera 之水波纹和banding现象
  6. Excel根据身份证号自动识别性别
  7. Android 11 Audio框架探索之AudioTracK(二)
  8. JAVA中多态的理解
  9. 企业文件加密系统 — 文件透明加密的优势和功能
  10. 分享我见到的培训面试和就业的情况(同时给出建议)