Python Network Programming - Part 1: Build 7 Python Apps
4.4 (1,323 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
11,207 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Python Network Programming - Part 1: Build 7 Python Apps to your Wishlist.

Add to Wishlist

Python Network Programming - Part 1: Build 7 Python Apps

Learn Python From Scratch! Go from zero programming to building great network apps with Python. Full Python Apps Inside!
Best Seller
4.4 (1,323 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
11,207 students enrolled
Last updated 8/2017
Current price: $10 Original price: $25 Discount: 60% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 13.5 hours on-demand video
  • 30 Articles
  • 27 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Master all the Python key concepts starting from scratch.
  • Use Python for connecting via Telnet to any network device.
  • Use Python for connecting via SSH to any network device.
  • Use Python for querying SNMP objects on any network device.
  • Use Python for querying, populating and updating a MySQL database.
  • Use Python for capturing, decoding and analyzing network packets.
  • Use Python for building customized network packets and send them to a network device.
  • Apply Python skills to build various tools for network interaction.
  • Create Python apps to automate daily networking tasks like configuring devices, collecting information about the network, network discovery or testing by client simulations.
  • Get the full code of 7 great Python network applications and customize them according to your needs.
  • Regular course updates: new lectures, applications and documents.
  • Ask for a raise or apply for a better job using the skills gained from this course.
  • Learn how to easily convert Python 2.x code to Python 3.x in Windows and Linux.
View Curriculum
  • You should have a great desire to learn programming and do it in a hands-on fashion, without having to watch countless lectures filled with slides and theory.
  • You should already be familiar with networking concepts like: Routing, SSH, Telnet, SNMP.
  • I will provide a fully configured virtual machine with all the necessary software (Python modules, MySQL, IDE). This way you can save time and start writing code as soon as possible.
  • I am going to use only free software throughout the course: Python 2.7, Linux, GNS3.
  • You need to find yourself a Cisco IOS image (from Cisco's official website - contract required) to load into GNS3 or practice all the concepts on real network devices you have at your job/home.
  • All you need is a decent PC/Laptop (2GHz CPU, 4GB RAM). You will get the rest from me.

* Course Went Live: May 2015. Last Update: December 2016 *

* Full Python Apps, Quizzes, Coding Exercises and Final Project are included *

Before you read what I have to say, see what my students are saying about my courses:

"What an incredible value and learning experience!" by Sean A.

"Excellent material. Kudos to a great instructor with a vast level of creativity." by Anthony W.

"I can say this man is going on smoothly and perfectly, explaining in the most empirical/foundational way." by Kolapo A.

*** Why would you take this course? ***

Do you want to become a Python Developer without having to spend a lot of money on books and boring theoretical courses?

Are you a network professional who wants to start automating network tasks using Python?

Or maybe you're seeking a raise or even a career change?

Join thousands of successful students who have decided to learn Python, upgrade their networking skills and boost their careers using this 100% hands-on course!

*** What's this course all about? ***

Python network programming (v2.7.3) course aimed not only at network professionals, but at anyone having little or no experience in coding or network automation and a great desire to start learning Python from scratch. This hands-on Python Network Programming training takes you from "Hello World!" to complex network applications in less than 15 hours.

During this course you will learn Python concepts which are relevant to your networking job and build some amazing network tools using Python:

  • Python App#1: Subnet calculator.

  • Python App#2: Configuring multiple network devices concurrently via SSH or Telnet.

  • Python App#3: DHCP client simulator for testing a DHCP server in the local network.

  • Python App#4: Collecting information from routers and storing it in a MySQL database.

  • Python App#5: OSPF network discovery via SNMP. Building the OSPF topology.

  • Python App#6: Basic network sniffer.

  • Python App#7: Configuration file comparator.

Sounds unbelievable given your current programming experience? Well, it's true! How?

First, you will learn and practice every Python key concept, which is explained in one or more video lectures, followed by a short quiz. Each video is filled with relevant examples, in a learn-by-doing fashion and the quizzes will help you consolidate the main ideas behind each Python topic.

After laying the foundation (and also exploring some advanced Python topics), you will dive right into the real-life network scenarios and apply your knowledge to build 7 great network tools using the power of Python.

Equipped with working files, network topologies and Python code samples (in .txt and .py formats), you will be able to work alongside me on each lecture and each application. I will provide a virtual machine with all the Python modules already installed and also the full code for each application, so you can save time and start coding and testing on the spot.

We will use emulated routers in GNS3 to test our Python apps in a network environment, so you can see the actual results of running your Python code. You need to find yourself a Cisco IOS image (from Cisco's official website - contract required) to load into GNS3 or practice all the concepts on real network devices you have at your job/home.

I encourage you to learn Python, an amazingly beginner-friendly programming language and take your (networking) job to a higher level of automation.

*** Is this course regularly updated? ***

Update Dec 17, 2016: Added: Section 22: What's Next?

Update Oct 12, 2016: Added: Video lecture: Asking For Help

Update Aug 27, 2016: Added: The "Python 2 vs. 3" Debate: FAQ

Update May 1, 2016: Massive course refresh. Improved Linux VM. New content. New sections. Python 3.x section added. Other fixes based on student feedback.

Update Dec 4, 2015: Added: Video lecture: Web Access Basics with Python: requests | FAQ lecture in Section 1

Update Nov 2, 2015: Added: Video lectures: Sockets: Server and Sockets: Client | Text and Code Samples: Socket Server Code and Socket Client Code

Update Oct 27, 2015: Added: Video lecture: Quick Insight To Get You Warmed Up!

Update Oct 19, 2015: Added: Text lecture for troubleshooting VirtualBox and GNS3

Update Sep 24, 2015: Added: Application #7 - Configuration file comparator

Update Sep 23, 2015: Added: Application #6 - Basic network sniffer

Update Sep 18, 2015: Added: Video lecture: Decorators

Update Sep 2, 2015: Added: Video lecture: Itertools

Update Aug 7, 2015: Added: VirtualBox and Virtual Machines - Short Guide

Update Aug 1, 2015: Added: Video lecture: Python Iterators and Generators

Update July 1, 2015: Added: Flow diagram for each application | Video lecture: How To Install a New Python Module | 3 new quizzes.

Update June 16, 2015: Added: Project for building a small Python network application | Video lecture to answer a student question | Video lecture to show how can students interact with me.

Update June 10, 2015: Added: 100 Python exercises and answers.

*** What others have to say about this course? ***

"I have been programming since 1978 and wanted to learn python. I have had no java or OOP experience, and I tried several 'paper' tutorials but got little out of them. The first part of this course is a steady walk through the Python language at just the right speed. The instructor seems to touch all the basis in a logical and methodical way while providing examples and explanations. I can only conclude the instructor is a professional educator who spent considerable time structuring and organizing the course. The result is evident. THIS IS A GREAT WAY TO LEARN PYTHON!" by Larry Laswell

"I've tried learning from the books & multiple videos - most were too basic to make a practical app. Some books were too thick and made me sleep. But still none of the materials had the perfect balance like this course where all the basics were covered, instructions were concise, and Mihai walks you through how to create 7 practical apps step by step. I've also tried reading some advanced python book which didn't make sense because it was too advanced. Let me tell you, this is hands down "that course that takes you up to beyond the basics" to bridge you to the advance topics. Right now I'm hitting the advanced topics and it finally makes sense..." by Joon Park

"Usually I'm not doing courses review but this time I will make an exception. During time I took a lot of trainings but very few provided by Udemy proved as having the right approach in teaching the audience. I will mark this one as being one of my personal top three best trainings as content's quality, technical explanations, and additional learning materials perspective. Long story short this course is a very simple, straight forward way of learning Python for managing IT networks." by Johnny Stanescu

"This is a great course for network engineers who would like to start automating their tasks. Geared towards beginners, this course teaches the fundamentals of programming and applying those concepts to networking. There is a lot of fluff about python on the internet, however the instructor managed to put together the necessary information to start automating the network. A working knowledge of TCP/IP is needed to get the most out of this course. Should you understand every lecture, you will be ready to start writing your own scripts according to your needs. In particular, I loved the use of scapy, an amazing tool which should be in the arsenal of anyone working with TCP/IP." by Costin-Alin Neacsu

"I've seen the blueprint and some demo videos and I was convinced right away. Without a doubt, it's one of the best trainings a network engineer can have. It gives you actual valuable and marketable skills that you can use in your daily job. Mihai explains the topics really well, with practical examples making it a fun way to learn. Highly recommended." by Vlad Vlaicu

Over 25.000 satisfied students are enrolled in my Python Network Programming courses across the Web:

  • Last week, over 300 students have joined my Python courses.

  • The average course rating is above 4.5 / 5.

*** Important information before you enroll! ***

  • In case you find the course useless for your career, don't forget you are covered by a 30 day money back guarantee, full refund, no questions asked!

  • Once enrolled, you have unlimited, lifetime access to the course!

  • You will have instant and free access to any updates I'll add to the course.

  • I will give you my full support regarding any issues or suggestions related to the course.

  • Check out the curriculum and FREE PREVIEW lectures for a quick insight.

Enroll NOW and hop on the Python network programming train. Let's get started!

Who is the target audience?
  • Anyone who wants to make the right choice when starting to learn programming
  • Network Administrators, Network (Systems) Engineers, Network (Service) Technicians, Network Analysts, Network Managers
  • Junior Programmers, Test Engineers, Test Automation Engineers, QA Engineers and Analysts
  • Python Developers who want to apply their knowledge in the networking field
  • Any kind of IT geeks who wish to learn both Python programming and network automation.
Compare to Other Python Network Programming Courses
Curriculum For This Course
159 Lectures
Getting started with this course
5 Lectures 09:23

Brief introduction to the Python programming language.

Preview 01:52

Brief overview of what we're going to cover throughout this course.

Preview 01:54

Watch this lecture to see how is this Python Network Programming course organized.

Some administrative details about this course

Very important information if you want to get the most out of this Python Network Programming course.

How To Receive Maximum Results From This Course

The “Python 2 vs. 3” Debate: FAQ
Course Resources and Troubleshooting Guides
11 Lectures 55:21

Let's start setting up the working environment for this Python Network Programming course.

Setting up the working environment

Download the necessary resources and guides to be able to practice all the concepts in this Python Network Programming course.

Download the resources and necessary applications

Downloading GNS3 and VirtualBox (Python Network Programming course series).

Downloading GNS3 and VirtualBox

Importing and configuring the VM in VirtualBox (Python Network Programming course series).

How to import and setup the Debian 7 VM in VirtualBox

Let's see how to set up GNS3 and a network topology to work on, for this Python Network Programming course.

Setting up the GNS3 network topology

Learn how to easily connect the VM and GNS3 (Python Network Programming course series).

How to connect the Debian 7 VM to GNS3 v1.4.x

Very important FAQ lecture! Please refer to this lecture whenever you run into any errors with Python, GNS3 or VirtualBox. If nothing works, please ask me and I will be happy to help.

FAQ - Please Read This In Case You Run Into Any Issues!

Short guide on using and configuring VirtualBox and VMs (Python Network Programming course).

VirtualBox and Virtual Machines - Short Guide

Have a MAC OS X? No worries, just check out this lecture to get things going!

Using VirtualBox and GNS3 on MAC OS X

Asking For Help

Check out all the major updates and fixes I added to this Python Network Programming course in May 2016.

Massive Course Refresh Summary - May 2016

Using the resources in this course - FAQ
10 questions
Python Basic Operations
5 Lectures 24:04

Using the Python interpreter shell.

Python interpreter

Writing basic Python scripts.

Python scripts

Passing arguments to a Python script.

Python argument passing

Accepting user input into a Python program.

User input

Getting help from the Python interpreter.

dir and help

Python basics
3 questions
Python Data Types
19 Lectures 01:52:06

Using Python variables.

Python Variables

Python Keywords List

Python keywords
1 page

Knowing the most important Python data types.

Preview 03:46

Working with Python strings.

Python Strings

Working with Python string methods.

Python String methods

Working with Python string format operators.

Python String operators and formatting

Working with Python string slices.

Python String slices

3 questions

Working with numbers in Python and doing math operations.

Numbers and math operators

Working with boolean values and logical operators.

Booleans and logical operators

Numbers and Booleans
3 questions

Introduction to Python lists.

Python Lists introduction

Working with Python list methods.

Python List methods

Working with Python list slices.

Python List slices

3 questions

Introduction to Python sets.

Preview 04:44

Working with Python set methods.

Python Set methods

3 questions

Introduction to Python tuples.

Python Tuples introduction

Working with Python tuple methods.

Python Tuple methods

3 questions

Introduction to Python dictionaries.

Python Dictionaries introduction

Working with Python dictionary methods.

Python Dictionary methods

Converting between various Python data types.

Conversions between data types

3 questions
Python Control Flow
7 Lectures 58:50

Working with Python if, elif, else statements.

If / Elif / Else conditionals

Working with Python for loops and the else clause.

For / For-Else loops

Working with Python while loops and the else clause.

While / While-Else loops

Working with Python nested structures.

Preview 07:27

Working with the Python break, continue and pass statements.

Break, Continue, Pass

Learning about Python exceptions.

Python Exceptions

Handling Python exceptions.

Try / Except / Else / Finally

Control Flow
5 questions
Python Functions
4 Lectures 47:02

Working with Python functions.

Python Functions

Working with Python function arguments.

Python Arguments

Understanding Python namespaces.

Python Namespaces

Understanding and importing Python modules.

Modules and importing

3 questions
Python File Operations
4 Lectures 22:07

Opening and reading files with Python.

File opening and reading

Writing and appending to files with Python.

File writing and appending

Closing files with Python.

Preview 03:08

Check out all the major file access modes that Python provides.

File access modes table

3 questions
Python Regular Expressions
3 Lectures 26:25

Matching and searching for substrings using Python regular expressions.

The "re.match" and "" methods

Finding and replacing substrings using Python regular expressions.

The "re.findall" and "re.sub" methods

Python Regular Expressions sheet
Python Regular Expressions sheet
3 pages

Regular Expressions
3 questions
Python Classes (Object-Oriented Programming) Basics
2 Lectures 19:56

Understanding and working with Python classes and objects.

Python Classes and Objects

Learning about Python class inheritance.

Python Classes and Inheritance

3 questions
Bonus Python Tools
5 Lectures 32:26

Working with Python list comprehensions, set comprehensions and dictionary comprehensions.

List / Set / Dictionary comprehensions

2 questions

Working with Python lambda functions.

Python Lambda functions

Lambda functions
3 questions

Working with Python map, filter and reduce functions.

Python Map, Filter, Reduce

Map, Filter, Reduce
3 questions

Understanding basic Python threading.

Python Threading basics

Learning a few Python coding best practices.

Some advice on coding
12 More Sections
About the Instructor
Mihai Catalin Teodosiu
4.4 Average rating
1,453 Reviews
11,753 Students
3 Courses
Network Engineer | Python Enthusiast | CCNP | EFF Supporter

Hi! My name is Mihai. I have a degree in Telecommunications and Information Technology from University Politehnica of Bucharest, Romania and also the CCNP, CCNA, CCDA, JNCIA and ISTQB CTFL certifications.

I worked as a Network Quality Assurance Engineer since 2010, testing the OS for Nortel/Avaya L3 switches.

# 6+ years experience in the Networking and Testing/Quality Assurance industries.

# Certified professional: Cisco, Juniper and International Software Testing Qualifications Board certifications.

# Teaching courses on Udemy, GNS3 Academy and other e-learning platforms.

# Thousands of satisfied students, 4.5 / 5 average course rating.

# Thousands of followers on LinkedIn, Twitter, Facebook and Blogger.

See what my students are saying about the kind of courses I created:

"What an incredible value and learning experience!" by Sean A.

"Excellent material. Kudos to a great instructor with a vast level of creativity." by Anthony W.

"I can say this man is going on smoothly and perfectly, explaining in the most empirical/foundational way." by Kolapo A.


In early 2014 I decided to start learning a programming language that can make my daily work easier and also boost my networking career. This is when I discovered that Python, being a great language for beginners, can help me write some scripts that connect to network devices and perform various tasks I was doing manually, thus saving a lot of time. Also, working as a tester, I used Python to automate a lot of network tests, about 250, in a short period of time, again reducing my workload.

For all the above reasons and because there is a lot of Python material out there on the Internet that may seem discouraging for you as a beginner, I decided to build courses that take you from zero programming knowledge to advanced topics, all in a hands-on fashion.


In March 2015 I started working on my first course, "Python Network Programming - Part 1: Build 7 Python Apps", without really knowing what is online education all about and with no prior teaching experience, either online or offline. I just wanted to try it for some reason, despite a lot of mental obstacles, a full time job and zero experience in teaching people.

I worked a lot on this first course, with countless hours of researching, recording and editing, but there was something that kept me going further. In May 2015 my course was approved by Udemy and was an instant success, despite my low expectations. Gradually, the course became a bestseller on other e-learning platforms, as well. One example I'm very proud of is the GNS3 Academy.

In April 2016, I finished working on Part 2 of the Python Network Programming series, called "Multivendor Environment", after about three months of researching, testing, summarizing, simplifying, recording, editing and structuring the course content.

Finally, in September 2016, I released Part 3 of this amazing course series, called "Python Network Programming - Part 3: Scapy & Security Tools", which in my opinion is very interesting and exciting for anyone wanting to enter the world of network security in a 100% hands-on fashion.

I am really putting a lot of energy and effort into each of my courses and I am always trying (and succeeding) to pay special attention to the smallest details and provide a lot of value to my students.

I really think my courses will get better and better, both by learning from my mistakes and carefully listening to the feedback I get from my students.


So, check out my courses and stay tuned for more!