GitHub – PacktPublishing/Python-Network-Programming: Conquer all your networking challenges with the powerful Python language

GitHub issues
GitHub forks
GitHub stars
PRs Welcome

Python Network Programming

This Learning Path reviews the core elements of Python and the TCP/IP protocol suite. It 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. This Learning Path will guide you in configuring the Linux Foundation networking ecosystem and deploying automated networks in the cloud. You will gain experience in retrieving network information with flow-based monitoring, a polling mechanism, and data visualization. Toward the end, you’ll develop client-side applications, such as web API clients, email clients, SSH, and FTP, using socket programming and multithreaded or event-driven architectures.
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 Dr. M. O. Faruque Sarker, Pradeeban Kathiravelu

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

Hardware requirements

For an optimal student experience, we recommend the following hardware configuration:

  • Processor: 2.6 GHz or higher, preferably multi-core
  • Memory: 4GB RAM
  • Hard disk: 10GB or more
  • An Internet connection

Software requirements

You’ll also need the following software installed in advance:

  • Operating System: Windows or Linux
  • Python (3.5 onward)
  • An Ansible installation
  • GNS3 (for testing) or real routers