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.
Abhishek Ratan has around 15 years of technical experience in networking, automation, and various ITIL processes, and has worked in various roles in different organizations. As a network engineer, security engineer, automation engineer, TAC engineer, tech lead, and content writer, he has gained a wealth of experience during the 15 years of his career. Abhishek also has a deep interest in strategy game playing, and if he is not working on technical stuff, he is busy spending time on his strategy games. He is currently working as a Sr Automation Engineer at ServiceNow, learning, and expanding his automation skills in the ServiceNow platform. His earlier experience includes working for companies such as Microsoft, Symantec, and Navisite,which has given him exposure to various environments. Eric Chou is a seasoned technologist with an industry experience of over 18 years. He has worked on and helped managed some of the largest networks in the industry while working at Amazon AWS, Microsoft Azure, and other companies. Eric is passionate about network automation, Python, and helping companies build better security postures. Eric is the author of several books and online classes on networking with Python and network security. He is the proud inventor of two patents in IP telephony. Eric shares his deep interest in technology through his books, classes, and his blog, and contributes to some of the popular Python open source projects. Pradeeban Kathiravelu is an open source evangelist. He is a Ph.D. researcher at INESC-ID Lisboa/Instituto Superior Tecnico, Universidade de Lisboa, Portugal, and Universite Catholique de Louvain, Belgium. He is a fellow of Erasmus Mundus Joint Degree in Distributed Computing (EMJD-DC), researching a software-defined approach to quality of service and data quality in multi-tenant clouds. Pradeeban holds a bachelor's degree in engineering, from the University of Moratuwa, Sri Lanka and a master's degree in science, Erasmus Mundus European Master in Distributed Computing (EMDC), from Instituto Superior Tecnico, Portugal and KTH Royal Institute of Technology, Sweden. His research interests include software-defined networking, distributed systems, cloud computing, web services, big data in biomedical informatics, network functions virtualization, and data mining. He is interested in open source software development and has been an active participant in the Google Summer of Code (GSoC) program since 2009, as a student and as a mentor. Pradeeban has published several conference papers and co-authored a few book chapters. He has also worked on the OpenDaylight Cookbook and the Learning OpenDaylight as a technical reviewer. Python Network Programming Cookbook, Second Edition (2017) is his first book as an author. Dr. M. O. Faruque Sarker is a software architect, who received his Ph.D. in multi-robot systems from the University of South Wales. Currently, he works at the University College London, where he shapes various Linux and open source software solutions, mainly on cloud computing platforms, for commercial companies, educational institutions, and multinational consultancies. Over the past 10 years, he has led several Python software development and cloud infrastructure automation projects. In 2009, when he started using Python, he was responsible for shepherding a fleet of miniature E-puck robots at the University of South Wales, Newport, UK. Later, he honed his Python skills and was invited to work on the Google Summer of Code (2009/2010) programs for contributing to the BlueZ and Tahoe-LAFS open source projects. He is the author of Python Network Programming Cookbook and Learning Python Network Programming books both by Packt Publishing.