当前位置: 首页 > news >正文

新书推荐 |《Python网络编程(原书第2版)》

新书推荐

《Python网络编程(原书第2版)》

点击上图了解及购买

本书是一本实用的Python网络编程技术实践指南,涵盖计算机网络管理、网络安全、自动化运维、Python Web搭建、网络测试等内容,旨在帮助你掌握Python网络编程技术,提升网络管理、运维能力。

编辑推荐

通过阅读本书,你将学到:

  • 用Python库来与网络交互。

  • 使用Python集成Ansible 2.5来控制Cisco、Juniper和Arista eAPI网络设备。

  • 利用现有的框架来构建高级API。

  • 学会如何在AWS 云中构建虚拟网络。

  • 理解如何使用Jenkins自动部署网络中的变化。

  • 使用PyTest和Unittest进行测试驱动的网络开发。

内容简介

本书从使用者的角度出发,首先简单回顾TCP/IP协议和Python基础知识,然后探讨如何使用Python管理网络设备,尤其是如何与传统的路由器和交换机进行通信。之后介绍如何使用Python自动化框架Ansible来实现批量系统配置、批量程序部署、批量运行命令等功能。接着介绍如何采用Python工具实现基础的网络安全管理,并介绍如何使用Python进行网络监控、搭建Web服务,以及其他的网络运维管理相关技术基础,如Git代码仓库的使用、Jenkins持续集成和网络的测试驱动开发等。本书涉及许多基础工具的使用,并配有大量示例代码,便于你边学习边实践。

作者简介

埃里克•周(Eric Chou)

资深技术专家,在网络工程领域有超过18年的从业经验。曾就职于亚马逊AWS和微软Azure等公司,参与并管理了一些业内的大型网络。Eric致力于网络自动化、Python以及帮助企业建立更好的安全机制。他是关于Python和网络安全领域的几本书和在线课程的作者,还是两项IP电话专利的荣誉发明者。他通过图书、网络课程和博客分享其对技术的浓厚兴趣,并且对一些受欢迎的Python开源项目做出了贡献。

目录

译者序

前言

关于作者

关于审稿人

第1章 回顾TCP/IP协议簇和Python1

1.1 互联网概述2

1.1.1 服务器、主机和网络组件2

1.1.2 数据中心的兴起3

1.2 OSI模型5

1.3 客户端–服务器模型6

1.4 网络协议簇7

1.4.1 传输控制协议7

1.4.2 用户数据报协议8

1.4.3 互联网协议9

1.5 Python语言概述10

1.5.1 Python版本11

1.5.2 操作系统12

1.5.3 运行一个Python程序12

1.5.4 Python内置类型13

1.5.5 Python操作符17

1.5.6 Python控制流工具18

1.5.7 Python函数19

1.5.8 Python类19

1.5.9 Python模块和包20

1.6 小结21

第2章 低级网络设备交互22

2.1 CLI面临的挑战23

2.2 搭建虚拟实验24

2.2.1 Cisco VIRL25

2.2.2 Cisco DevNet和Cisco dCloud28

2.2.3 GNS329

2.3 Python Pexpect 库30

2.3.1 Pexpect安装31

2.3.2 Pexpect概述31

2.3.3 第一个Pexpect程序35

2.3.4 Pexpect的更多功能36

2.3.5 Pexpect和SSH37

2.3.6 将Pexpect的所有内容都放到脚本中37

2.4 Python Paramiko库38

2.4.1 Paramiko安装39

2.4.2 Paramiko概述39

2.4.3 第一个Paramiko程序42

2.4.4 Paramiko的更多功能42

2.4.5 Paramiko可重用性44

2.5 展望45

2.6 小结46

第3章 API和意图驱动网络47

3.1 基础设施作为代码48

3.1.1 意图驱动网络48

3.1.2 屏幕抓取与API结构化输出49

3.1.3 基础设施的数据建模作为代码51

3.2 Cisco API和Cisco ACI52

3.2.1 Cisco NX-API 53

3.2.2 Cisco和YANG模型58

3.2.3 Cisco ACI58

3.3 Juniper网络的Python API60

3.3.1 Juniper和NETCONF61

3.3.2 开发者的Juniper PyEZ64

3.4 Arista Python API68

3.4.1 Arista eAPI管理68

3.4.2 Arista Pyeapi库72

3.5 厂商中立的库76

3.6 小结76

第4章 Python自动化框架—Ansible基础知识77

4.1 一个更具声明性的框架78

4.2 Ansible示例79

4.2.1 控制节点安装79

4.2.2 运行不同版本的Ansible源代码80

4.2.3 实验建立81

4.2.4 第一个Ansible playbook示例81

4.3 Ansible的优点85

4.3.1 无代理85

4.3.2 幂等性85

4.3.3 简单且可扩展86

4.3.4 网络供应商支持86

4.4 Ansible架构87

4.4.1 YAML88

4.4.2 清单89

4.4.3 变量90

4.4.4 使用Jinja2的模板93

4.5 Ansible网络模块93

4.5.1 本地连接和facts93

4.5.2 provider参数94

4.6 Ansible Cisco示例95

4.7 Ansible Juniper示例99

4.8 Ansible Arista示例101

4.9 小结102

第5章 Python自动化框架—进阶知识103

5.1 Ansible条件语句104

5.1.1 when子句104

5.1.2 Ansible网络facts106

5.1.3 网络模块的条件化108

5.2 Ansible循环109

5.2.1 标准循环109

5.2.2 循环字典110

5.3 模板112

5.3.1 Jinja2模板113

5.3.2 Jinja2循环114

5.3.3 Jinja2的条件化114

5.4 组变量和主机变量116

5.4.1 组变量117

5.4.2 主机变量118

5.5 Ansible Vault119

5.6 Ansible的include和角色120

5.6.1 Ansible的include语句120

5.6.2 Ansible的角色121

5.7 编写自定义Ansible模块124

5.7.1 第一个自定义模块125

5.7.2 第二个自定义模块127

5.8 小结128

第6章 Python下的网络安全129

6.1 搭建实验环境129

6.2 Python Scapy132

6.2.1 安装Scapy133

6.2.2 交互示例133

6.2.3 嗅探135

6.2.4 TCP端口扫描136

6.2.5 ping集合138

6.2.6 常见攻击139

6.2.7 Scapy资源140

6.3 访问列表140

6.3.1 使用Ansible实现访问列表141

6.3.2 MAC访问列表143

6.4 Syslog搜索144

6.5 其他工具147

6.5.1 专用VLAN147

6.5.2 使用Python的UFW147

6.5.3 延伸阅读148

6.6 小结148

第7章 Python下的网络监控—第一部分150

7.1 实验准备151

7.2 SNMP151

7.2.1 准备152

7.2.2 PySNMP154

7.3 用于数据可视化的Python159

7.3.1 Matplotlib 159

7.3.2 Pygal 165

7.4 用于Cacti的Python169

7.4.1 安装169

7.4.2 作为输入源的Python脚本170

7.5 小结172

第8章 Python下的网络监控—第二部分173

8.1 Graphviz174

8.1.1 实验准备174

8.1.2 安装176

8.1.3 Graphviz示例176

8.1.4 Python Graphviz示例178

8.1.5 LLDP邻居绘图178

8.2 基于流程的监控185

8.2.1 Python下的NetFlow解析185

8.2.2 ntop流量监视189

8.2.3 sFlow194

8.3 Elasticsearch(ELK堆栈)198

8.3.1 设置托管ELK服务198

8.3.2 Logstash格式199

8.3.3 Logstash格式的Python助手脚本200

8.4 小结202

第9章 使用Python构建网络Web服务203

9.1 Python Web相关框架比较204

9.2 Flask和实验设置206

9.3 Flask的相关介绍207

9.3.1 HTTPie客户端208

9.3.2 URL路由209

9.3.3 URL变量210

9.3.4 URL的生成211

9.3.5 jsonify返回值211

9.4 网络资源API212

9.4.1 Flask-SQLAlchemy212

9.4.2 网络内容API214

9.4.3 API设备216

9.4.4 API的设备ID218

9.5 网络动态操作218

9.6 安全223

9.7 其他资源225

9.8 小结226

第10章 AWS云网络227

10.1 AWS准备工作228

10.2 AWS网络概述231

10.3 虚拟私有云234

10.3.1 路由表和路由目标238

10.3.2 使用CloudFormation实现自动化239

10.3.3 安全组和网络ACL242

10.3.4 弹性IP244

10.3.5 NAT网关244

10.4 直连和VPN246

10.4.1 VPN网关246

10.4.2 直连247

10.5 网络扩展服务247

10.5.1 弹性负载平衡248

10.5.2 Route53 DNS服务248

10.5.3 CloudFront CDN服务249

10.6 其他AWS网络服务249

10.7 小结249

第11章 Git的使用251

11.1 Git简介252

11.1.1 Git的好处252

11.1.2 Git术语253

11.1.3 Git和GitHub254

11.2 设置Git254

11.3 Git用法示例255

11.4 在Python中使用Git267

11.4.1 GitPython267

11.4.2 PyGitHub268

11.5 自动配置备份269

11.6 与Git协作271

11.7 小结272

第12章 使用Jenkins持续集成273

12.1 传统的变更管理流程273

12.2 持续集成简介274

12.3 安装Jenkins275

12.4 Jenkins示例277

12.4.1 Python脚本的第一个作业278

12.4.2 Jenkins插件282

12.4.3 网络持续集成示例284

12.5 使用Python-Jenkins290

12.6 网络的持续集成292

12.7 小结292

第13章 网络的测试驱动开发293

13.1 测试驱动开发概述294

13.2 拓扑作为代码295

13.3 更多关于Python测试的信息301

13.4 编写网络测试304

13.4.1 测试可达性304

13.4.2 测试网络延迟305

13.4.3 测试安全性306

13.4.4 测试事务306

13.4.5 测试网络配置307

13.4.6 测试Ansible307

13.5 在Jenkins中使用pytest307

13.6 小结311

你与世界

只差一个

公众号

相关文章:

  • Python传奇:30年崛起之路
  • 新书推荐 |《IPFS原理与实践》
  • 微服务架构之「 下一代微服务 Service Mesh 」
  • 新书推荐 |《OpenCV 4计算机视觉项目实战(原书第2版)》
  • 一文看懂用R语言读取Excel、PDF和JSON文件(附代码)
  • 新书推荐 |《好设计,有方法:我们在搜狐做产品体验设计》
  • 新书推荐 |《广告数据定量分析:如何成为一位厉害的广告优化师》
  • 用Python给女友准备个绝对甜蜜的七夕礼物
  • 新书推荐 |《机器学习即服务:将Python机器学习创意快速转变为云端Web应用程序》...
  • 搞定这个月薪50K的AI热门领域,看这9本书就够了
  • 新书推荐 |《强化学习:原理与Python实现》
  • 智能生产之路(一):从计算机集成制造到精益生产再到工业 4.0
  • 这是一份所有人都适用的DevOps书单
  • 新书推荐 |《TensorFlow机器学习实战指南(原书第2版)》
  • CIC 2019 回顾:行业洞察与数字化转型的未来
  • [LeetCode] Wiggle Sort
  • [译] React v16.8: 含有Hooks的版本
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • DOM的那些事
  • Java程序员幽默爆笑锦集
  • jdbc就是这么简单
  • node.js
  • October CMS - 快速入门 9 Images And Galleries
  • php面试题 汇集2
  • React-生命周期杂记
  • RxJS: 简单入门
  • SQLServer插入数据
  • storm drpc实例
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 大数据与云计算学习:数据分析(二)
  • 关于Flux,Vuex,Redux的思考
  • 聊聊redis的数据结构的应用
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 王永庆:技术创新改变教育未来
  • 微服务核心架构梳理
  • 一份游戏开发学习路线
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • FaaS 的简单实践
  • python最赚钱的4个方向,你最心动的是哪个?
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 组复制官方翻译九、Group Replication Technical Details
  • 昨天1024程序员节,我故意写了个死循环~
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • #include
  • #QT(一种朴素的计算器实现方法)
  • #传输# #传输数据判断#
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (八十八)VFL语言初步 - 实现布局
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (三)c52学习之旅-点亮LED灯
  • (一)Neo4j下载安装以及初次使用
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)Linq学习笔记
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .bat批处理(三):变量声明、设置、拼接、截取