万本电子书0元读

万本电子书0元读

顶部广告

Python Network Programming电子书

售       价:¥

4人正在读 | 0人评论 9.8

作       者:Abhishek Ratan

出  版  社:Packt Publishing

出版时间:2019-01-31

字       数:88.4万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Power up your network applications with Python programming Key Features * Master Python skills to develop powerful network applications * Grasp the fundamentals and functionalities of SDN * Design multi-threaded, event-driven architectures for echo and chat servers Book Description This Learning Path highlights major aspects of Python network programming such as writing simple networking clients, creating and deploying SDN and NFV systems, and extending your network with Mininet. You’ll also learn how to automate legacy and the latest network devices. As you progress through the chapters, you’ll use Python for DevOps and open source tools to test, secure, and analyze your network. Toward the end, you'll develop client-side applications, such as web API clients, email clients, SSH, and FTP, using socket programming. By the end of this Learning Path, you will have learned how to analyze a network's security vulnerabilities using advanced network packet capture and analysis techniques. This Learning Path includes content from the following Packt products: * Practical Network Automation by Abhishek Ratan * Mastering Python Networking by Eric Chou * Python Network Programming Cookbook, Second Edition by Pradeeban Kathiravelu, Dr. M. O. Faruque Sarker What you will learn * Create socket-based networks with asynchronous models * Develop client apps for web APIs, including S3 Amazon and Twitter * Talk to email and remote network servers with different protocols * Integrate Python with Cisco, Juniper, and Arista eAPI for automation * Use Telnet and SSH connections for remote system monitoring * Interact with websites via XML-RPC, SOAP, and REST APIs * Build networks with Ryu, OpenDaylight, Floodlight, ONOS, and POX * Configure virtual networks in different deployment environments Who this book is for If you are a Python developer or a system administrator who wants to start network programming, this Learning Path gets you a step closer to your goal. IT professionals and DevOps engineers who are new to managing network devices or those with minimal experience looking to expand their knowledge and skills in Python will also find this Learning Path useful. Although prior knowledge of networking is not required, some experience in Python programming will be helpful for a better understanding of the concepts in the Learning Path.
目录展开

Title Page

Copyright

Python Network Programming

About Packt

Why subscribe?

Packt.com

Contributors

About the authors

Packt is searching for authors like you

Preface

Who this book is for

What this book covers

To get the most out of this book

Download the example code files

Download the color images

Conventions used

Get in touch

Reviews

Fundamental Concepts

Network automation

DevOps

Software-defined networking

OpenFlow

Program concepts

Variables

Data types

Decision makers

Loops

Arrays

Functions

Best practices

Readability of a program

Support information

Indentation

Sample best practice example

Language choices (Python/PowerShell)

Writing your first program

PowerShell IDE

Python IDE

Representational State Transfer (REST) framework

Summary

Python for Network Engineers

Python interpreter and data types

Conditions and loops

Nested and multiple conditions

Loops

For next loop

While loop

Writing Python scripts

Functions

Passing arguments from the command line

Python modules and packages

Multithreading for parallel processing

Using Netmiko for SSH and network device interaction

Network automation use case

Summary

Continuous Integration for Network Engineers

Interaction with Splunk

Automation examples on various technology domains

BGP and routing table

Configuring Cisco switchport for access point

Configuring Cisco switchport for IP Phone

Wireless LAN (WLAN)

Access of IP Address Management (IPAM)

Example and use case

Create a web-based pre and post check tool for validations

Step 1 – Create the main HTML file

Step 2 – Create the backend Python code

Step 3 – Create web server based files for the tool

Step 4 – Create server based files for pre and post files comparison

Summary

SDN Concepts in Network Automation

Managing cloud platforms

Programmable network devices

Controller-based network fabric

Network automation tools

Summary

Low-Level Network Device Interactions

The challenges of the CLI

Constructing a virtual lab

Cisco VIRL

VIRL tips

Cisco DevNet and dCloud

GNS3

Python Pexpect library

Pexpect installation

Pexpect overview

Our first Pexpect program

More Pexpect features

Pexpect and SSH

Putting things together for Pexpect

The Python Paramiko library

Installation of Paramiko

Paramiko overview

Our first Paramiko program

More Paramiko features

Paramiko for servers

Putting things together for Paramiko

Looking ahead

Downsides of Pexpect and Paramiko compared to other tools

Idempotent network device interaction

Bad automation speeds bad things up

Summary

APIs and Intent-Driven Networking

Infrastructure as code

Intent-Driven Networking

Screen scraping versus API structured output

Data modeling for infrastructure as code

The Cisco API and ACI

Cisco NX-API

Lab software installation and device preparation

NX-API examples

The Cisco and YANG models

The Cisco ACI

The Python API for Juniper networks

Juniper and NETCONF

Device preparation

Juniper NETCONF examples

Juniper PyEZ for developers

Installation and preparation

PyEZ examples

The Arista Python API

Arista eAPI management

The eAPI preparation

eAPI examples

The Arista Pyeapi library

Pyeapi installation

Pyeapi examples

Vendor-neutral libraries

Summary

The Python Automation Framework – Ansible Basics

A more declarative framework

A quick Ansible example

The control node installation

Running different versions of Ansible from source

Lab setup

Your first Ansible playbook

The public key authorization

The inventory file

Our first playbook

The advantages of Ansible

Agentless

Idempotent

Simple and extensible

Network vendor support

The Ansible architecture

YAML

Inventories

Variables

Templates with Jinja2

Ansible networking modules

Local connections and facts

Provider arguments

The Ansible Cisco example

Ansible 2.5 connection example

The Ansible Juniper example

The Ansible Arista example

Summary

The Python Automation Framework – Beyond Basics

Ansible conditionals

The when clause

Ansible network facts

Network module conditional

Ansible loops

Standard loops

Looping over dictionaries

Templates

The Jinja2 template

Jinja2 loops

The Jinja2 conditional

Group and host variables

Group variables

Host variables

The Ansible Vault

The Ansible include and roles

The Ansible include statement

Ansible roles

Writing your own custom module

The first custom module

The second custom module

Summary

AWS Cloud Networking

AWS setup

AWS CLI and Python SDK

AWS network overview

Virtual private cloud

Route tables and route targets

Automation with CloudFormation

Security groups and the network ACL

Elastic IP

NAT Gateway

Direct Connect and VPN

VPN Gateway

Direct Connect

Network scaling services

Elastic Load Balancing

Route53 DNS service

CloudFront CDN services

Other AWS network services

Summary

Working with Git

Introduction to Git

Benefits of Git

Git terminology

Git and GitHub

Setting up Git

Gitignore

Git usage examples

GitHub example

Collaborating with pull requests

Git with Python

GitPython

PyGitHub

Automating configuration backup

Collaborating with Git

Summary

Sockets, IPv4, and Simple Client/Server Programming

Introduction

Printing your machine's name and IPv4 address

Getting ready

How to do it...

How it works...

Retrieving a remote machine's IP address

How to do it...

How it works...

Converting an IPv4 address to different formats

How to do it...

How it works...

Finding a service name, given the port and protocol

Getting ready

How to do it...

How it works...

Converting integers to and from host to network byte order

How to do it...

How it works...

Setting and getting the default socket timeout

How to do it...

How it works...

Handling socket errors gracefully

How to do it...

How it works...

Modifying a socket's send/receive buffer sizes

How to do it...

How it works...

Changing a socket to the blocking/non-blocking mode

How to do it...

How it works...

Reusing socket addresses

How to do it...

How it works...

Printing the current time from the internet time server

Getting ready

How to do it...

How it works...

Writing an SNTP client

How to do it...

How it works...

Writing a simple TCP echo client/server application

How to do it...

How it works...

Writing a simple UDP echo client/server application

How to do it...

How it works...

Multiplexing Socket I/O for Better Performance

Introduction

Using ForkingMixIn in your socket server applications

How to do it...

How it works...

Using ThreadingMixIn in your socket server applications

Getting ready

How to do it...

How it works...

Writing a chat server using select.select

How to do it...

How it works...

Multiplexing a web server using select.epoll

How to do it...

How it works...

Multiplexing an echo server using Diesel concurrent library

Getting ready

How to do it...

How it works...

IPv6, Unix Domain Sockets, and Network Interfaces

Introduction

Forwarding a local port to a remote host

How to do it...

How it works...

Pinging hosts on the network with ICMP

Getting ready

How to do it...

How it works...

Waiting for a remote network service

How to do it...

How it works...

Enumerating interfaces on your machine

Getting ready

How to do it...

How it works...

Finding the IP address for a specific interface on your machine

Getting ready

How to do it...

How it works...

Finding whether an interface is up on your machine

Getting ready

How to do it...

How it works...

Detecting inactive machines on your network

Getting ready

How to do it...

How it works...

Performing a basic IPC using connected sockets (socketpair)

Getting ready

How to do it...

How it works...

Performing IPC using Unix domain sockets

How to do it...

How it works...

Finding out if your Python supports IPv6 sockets

Getting ready

How to do it...

How it works...

Extracting an IPv6 prefix from an IPv6 address

How to do it...

How it works...

Writing an IPv6 echo client/server

How to do it...

How it works...

Programming with HTTP for the Internet

Introduction

Downloading data from an HTTP server

How to do it...

How it works...

Serving HTTP requests from your machine

How to do it...

How it works...

Extracting cookie information after visiting a website

How to do it...

How it works...

Submitting web forms

Getting ready

How to do it...

How it works...

Sending web requests through a proxy server

Getting ready

How to do it...

How it works...

Checking whether a web page exists with the HEAD request

How to do it...

How it works...

Spoofing Mozilla Firefox in your client code

How to do it...

How it works...

Saving bandwidth in web requests with the HTTP compression

How to do it...

How it works...

Writing an HTTP fail-over client with resume and partial downloading

How to do it...

How it works...

Writing a simple HTTPS server code with Python and OpenSSL

Getting ready

How to do it...

How it works...

Building asynchronous network applications with Twisted

Getting ready

How to do it...

How it works...

Building asynchronous network applications with Tornado

Getting ready

How to do it...

How it works...

Building concurrent applications with Tornado Future

Getting ready

How to do it...

How it works...

Email Protocols, FTP, and CGI Programming

Introduction

Listing the files in a remote FTP server

Getting ready

How to do it...

How it works...

Common error

Uploading a local file to a remote FTP server

Getting ready

How to do it...

How it works...

Emailing your current working directory as a compressed ZIP file

Getting ready

How to do it...

How it works...

See also

Downloading your Google email with POP3

Getting ready

How to do it...

How it works...

Checking your remote email with IMAP

Getting ready

How to do it...

How it works...

Sending an email with an attachment via Gmail SMTP server

Getting ready

How to do it...

How it works...

Writing a guestbook for your (Python-based) web server with CGI

Getting ready

How to do it...

How it works...

Finding the mail server from an email address

Getting ready

How to do it...

How it works...

Writing a simple SMTP server

Getting ready

How to do it...

How it works...

Writing a secure SMTP client using TLS

Getting ready

How to do it...

How it works...

Writing an email client with POP3

Getting ready

How to do it...

How it works...

Programming Across Machine Boundaries

Introduction

Executing a remote shell command using telnet

Getting ready

How to do it...

How it works...

Copying a file to a remote machine by SFTP

Getting ready

How to do it...

How it works...

Printing a remote machine's CPU information

Getting ready

How to do it...

How it works...

Installing a Python package remotely

Getting ready

How to do it...

How it works...

Running a MySQL command remotely

Getting ready

How to do it...

How it works...

Transferring files to a remote machine over SSH

Getting ready

How to do it...

How it works...

Configuring Apache remotely to host a website

Getting ready

How to do it...

How it works...

Working with Web Services – SOAP, and REST

Introduction

Querying a local XML-RPC server

Getting ready

How to do it...

How it works...

Writing a multithreaded, multicall XML-RPC server

How to do it...

How it works...

Running an XML-RPC server with a basic HTTP authentication

How to do it...

How it works...

Collecting some photo information from Flickr using REST

How to do it...

How it works...

Searching for SOAP methods from an Amazon S3 web service

Getting ready

How to do it...

How it works...

Searching Amazon for books through the product search API

Getting ready

How to do it...

How it works...

Creating RESTful web applications with Flask

Getting ready

How to do it...

How it works...

Network Monitoring and Security

Introduction

Sniffing packets on your network

Getting ready

How to do it...

How it works...

Saving packets in the pcap format using the pcap dumper

How to do it...

How it works...

Adding an extra header in HTTP packets

How to do it...

How it works...

Scanning the ports of a remote host

How to do it...

How it works...

Customizing the IP address of a packet

How to do it...

How it works...

Replaying traffic by reading from a saved pcap file

How to do it...

How it works...

Scanning the broadcast of packets

How to do it...

How it works...

Network Modeling

Introduction

Simulating networks with ns-3

Getting ready

How to do it...

How it works...

Emulating networks with Mininet

Getting ready

How to do it...

How it works...

Distributed network emulation with MaxiNet

Getting ready

How to do it...

How it works...

Emulating wireless networks with Mininet-WiFi

Getting ready

How to do it...

How it works...

Extending Mininet to emulate containers

Getting ready

How to do it...

How it works...

Authentication, Authorization, and Accounting (AAA)

Introduction

Finding DNS names of a network

Getting ready

How to do it...

How it works...

Finding DNS host information

Getting ready

How to do it...

How it works...

Finding DNS resource records

Getting ready

How to do it...

How it works...

Making DNS zone transfer

Getting ready

How to do it...

How it works...

Querying NTP servers

Getting ready

How to do it...

How it works...

Connecting to an LDAP server

Getting ready

How to do it...

How it works...

Making LDAP bind

Getting ready

How to do it...

How it works...

Reading and writing LDAP

Getting ready

How to do it...

How it works...

Authenticating REST APIs with Eve

Getting ready

How to do it...

How it works...

Throttling requests with RequestsThrottler

Getting ready

How to do it...

How it works...

Open and Proprietary Networking Solutions

Introduction

Configuring Red PNDA

Getting ready

How to do it...

How it works...

Configuring VMware NSX for vSphere 6.3.2

Getting ready

How to do it...

How it works...

Configuring Juniper Contrail Server Manager

Getting ready

How to do it...

How it works...

Configuring OpenContrail controller

Getting ready

How to do it...

How it works...

Configuring OpenContrail cluster

How to do it...

How it works...

Interacting with devices running Cisco IOS XR

Getting ready

How to do it...

How it works...

Collaborating with Cisco Spark API

Getting ready

How to do it...

How it works...

NFV and Orchestration – A Larger Ecosystem

Introduction

Building VNFs with OPNFV

Getting ready

How to do it...

How it works...

Packet processing with DPDK

Getting ready

How to do it...

How it works...

Parsing BMP messages with SNAS.io

Getting ready

How to do it...

How it works...

Controlling drones with a wireless network

Getting ready

How to do it...

How it works...

Creating PNDA clusters

Getting ready

How to do it...

How it works...

Programming the Internet

Introduction

Checking a website status

Getting ready

How to do it...

How it works...

Benchmarking BGP implementations with bgperf

Getting ready

How to do it...

How it works...

BGP with ExaBGP

Getting ready

How to do it...

Looking glass implementations with Python

Getting ready

How to do it...

How it works...

Understanding the internet ecosystem with Python

Getting ready

How to do it...

How it works...

Establishing BGP connections with yabgp

Getting ready

How to do it...

How it works...

Other Books You May Enjoy

Leave a review - let other readers know what you think

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部