Workshop overview

  • This workshop explores network programming in the Python language.
  • We’ll explore networking concepts, protocols and translate these into practical network programming.
  • We’ll cover basic concepts, modules & third-party libraries in Python to communicate over networks.
  • We’ll take a bottom-up approach i.e. starting from socket API up until using high level libraries like Requests.
  • Difference between Python2.x & Python3.x with regards to network code.

Concepts covered

  • Scripts to communicate over HTTP, DNS, SSH, Telnet, FTP and SFTP.
  • Writing simple web scrapers.
  • Automating various system administration tasks.(Managing SSH sessions, Querying web services)
  • Managing Network data and handling network errors.

Skill prerequisites

  • Basics of Python programming. (strings, lists, dicts, functions, files etc)
  • Knowledge of basic networking concepts. (Enough to know what an IP address, port number, OSI model etc.)

Technical prerequisites

  • Laptop with administrator access (mandatory).
  • Minimum 2 GB RAM and 15 GB free hard disk space (More the better).
  • Preferably running Linux as primary OS but Windows/Mac is permissible.
  • Preferably, your own Internet connectivity.

Libraries/Modules

  • Standard library
    • urllib, urllib2, pexpect, telnetlib, ftplib, sys, os, getpass.
  • Third party modules
    • requests, paramiko, pxssh, netaddr, netifaces, dnspython