Learning Python Network Programming
eBook - ePub

Learning Python Network Programming

Dr. M. O. Faruque Sarker, Sam Washington

Buch teilen
  1. 320 Seiten
  2. English
  3. ePUB (handyfreundlich)
  4. Über iOS und Android verfügbar
eBook - ePub

Learning Python Network Programming

Dr. M. O. Faruque Sarker, Sam Washington

Angaben zum Buch
Buchvorschau
Inhaltsverzeichnis
Quellenangaben

Über dieses Buch

About This Book

  • Leverage your Python programming skills to build powerful network applications
  • Explore steps to interact with a wide range of network services
  • Design multithreaded and event-driven architectures for echo and chat servers

Who This Book Is For

If you're a Python developer or a system administrator with Python experience and you're looking to take your first steps in network programming, then this book is for you. Basic knowledge of Python is assumed.

Häufig gestellte Fragen

Wie kann ich mein Abo kündigen?
Gehe einfach zum Kontobereich in den Einstellungen und klicke auf „Abo kündigen“ – ganz einfach. Nachdem du gekündigt hast, bleibt deine Mitgliedschaft für den verbleibenden Abozeitraum, den du bereits bezahlt hast, aktiv. Mehr Informationen hier.
(Wie) Kann ich Bücher herunterladen?
Derzeit stehen all unsere auf Mobilgeräte reagierenden ePub-Bücher zum Download über die App zur Verfügung. Die meisten unserer PDFs stehen ebenfalls zum Download bereit; wir arbeiten daran, auch die übrigen PDFs zum Download anzubieten, bei denen dies aktuell noch nicht möglich ist. Weitere Informationen hier.
Welcher Unterschied besteht bei den Preisen zwischen den Aboplänen?
Mit beiden Aboplänen erhältst du vollen Zugang zur Bibliothek und allen Funktionen von Perlego. Die einzigen Unterschiede bestehen im Preis und dem Abozeitraum: Mit dem Jahresabo sparst du auf 12 Monate gerechnet im Vergleich zum Monatsabo rund 30 %.
Was ist Perlego?
Wir sind ein Online-Abodienst für Lehrbücher, bei dem du für weniger als den Preis eines einzelnen Buches pro Monat Zugang zu einer ganzen Online-Bibliothek erhältst. Mit über 1 Million Büchern zu über 1.000 verschiedenen Themen haben wir bestimmt alles, was du brauchst! Weitere Informationen hier.
Unterstützt Perlego Text-zu-Sprache?
Achte auf das Symbol zum Vorlesen in deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Weitere Informationen hier.
Ist Learning Python Network Programming als Online-PDF/ePub verfügbar?
Ja, du hast Zugang zu Learning Python Network Programming von Dr. M. O. Faruque Sarker, Sam Washington im PDF- und/oder ePub-Format sowie zu anderen beliebten Büchern aus Informatica & Reti di computer. Aus unserem Katalog stehen dir über 1 Million Bücher zur Verfügung.

Information

Jahr
2015
ISBN
9781784391157

Learning Python Network Programming


Table of Contents

Learning Python Network Programming
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Free access for Packt account holders
Preface
What this book covers
What you need for this book
Virtual environments
Installing Python 3
Ubuntu and Debian
RHEL, CentOS, Scientific Linux
Fedora
Alternative installation methods
Pythonz
JuJu
Windows
Other requirements
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Network Programming and Python
An introduction to TCP/IP networks
IP addresses
Network interfaces
Assigning IP addresses
IP addresses on the Internet
Packets
Networks
Routing with IP
DNS
The protocol stack or why the Internet is like a cake
Layer 4 – TCP and UDP
Network ports
UDP
TCP
UDP versus TCP
Layer 5 – The application layer
On to Python!
Network programming with Python
Breaking a few eggs
Taking it from the top
Downloading an RFC
Looking deeper
Programming for TCP/IP networks
Firewalls
Network Address Translation
IPv6
Summary
2. HTTP and Working with the Web
Request and response
Requests with urllib
Response objects
Status codes
Handling problems
HTTP headers
Customizing requests
Content compression
Multiple values
Content negotiation
Content types
User agents
Cookies
Cookie handling
Know your cookies
Redirects
URLs
Paths and relative URLs
Query strings
URL encoding
URLs in summary
HTTP methods
The HEAD method
The POST method
Formal inspection
HTTPS
The Requests library
Handling errors with Requests
Summary
3. APIs in Action
Getting started with XML
The XML APIs
The basics of ElementTree
Pretty printing
Element attributes
Converting to text
The Amazon S3 API
Registering with AWS
Authentication
Setting up an AWS user
Regions
S3 buckets and objects
An S3 command-line client
Creating a bucket with the API
Uploading a file
Retrieving an uploaded file through a web browser
Displaying an uploaded file in a web browser
Downloading a file with the API
Parsing XML and handling errors
Parsing XML
Finding elements
Handling errors
Further enhancements
The Boto package
Wrapping up with S3
JSON
Encoding and decoding
Using dicts with JSON
Other object types
The Twitter API
A Twitter world clock
Authentication for Twitter
Registering your application for the Twitter API
Authenticating requests
A Twitter client
Polling for Tweets
Processing the Tweets
Rate limits
Sending a reply
Final touches
Taking it further
Polling and the Twitter streaming APIs
Alternative oAuth flows
HTML and screen scraping
HTML parsers
Show me the data
Parsing HTML with lxml
Zeroing in
Searching with XPath
XPath conditions
Pulling it together
With great power...
Choosing a User Agent
The Robots.txt file
Summary
4. Engaging with E-mails
E-mail terminologies
Sending e-mails with SMTP
Composing an e-mail message
Sending an e-mail message
Sending e-mails securely with TLS
Retrieving e-mails by using POP3 with poplib
Retrieving e-mails by using IMAP with imaplib
Sending e-mail attachments
Sending e-mails via the logging module
Summary
5. Interacting with Remote Systems
Secure shell – access using Python
Inspecting the SSH packets
Transferring files through SFTP
Transferring files with FTP
Inspecting FTP packets
Fetching Simple Network Management Protocol data
Inspecting SNMP packets
Reading Light-weight Directory Access Protocol data
Inspecting LDAP packets
Sharing files with SAMBA
Inspecting SAMBA packets
Summary
6. IP and DNS
Retrieving the network configuration of a local machine
Manipulating IP addresses
IP network objects
Network interface objects
The IP address objects
Planning IP addresses for your local area network
GeoIP look-ups
DNS look-ups
Inspecting DNS client/server communication
NTP clients
Inspecting the NTP client/server communication
Summary
7. Programming with Sockets
Basics of sockets
Working with TCP sockets
Inspecting the client/server communication
TCP servers
Inspecting client/server interaction
Working with UDP sockets
TCP port forwarding
A non-blocking socket I/O
Securing sockets with TLS/SSL
Inspecting standard SSL client/server communication
Creating a custom SSL client/server
Inspecting interaction between a custom SSL client/server
Summary
8. Client and Server Applications
Client and server
An echo protocol
Framing
A simple echo server
Handling the received data
The server itself
A simple echo client
Concurrent I/O
Multithreading and multiprocessing
Threading and the GIL
A multithreaded echo server
Designing a chat server
A chat protocol
Handling data on persistent connections
A multithreaded chat server
Queues
Locks
A multithreaded chat client
Event-driven servers
A low-level event-driven chat server
Frameworks
An eventlet-based chat server
An asyncio-based chat server
More on frameworks
Taking our servers forward
Summary
9. Applications for the Web
What's in a web server?
Python and the Web
Web frameworks
Flask – a microframework
Templating
Other templating engines
Adding some style
A note on security
XSS
CSRF
Finishing up with frameworks
Hosting Python web applications
CGI
Recycling for a better world
Event-driven servers
WSGI
Hosting in practice
Summary
A. Working with Wireshark
Packet sniffers
Wireshark
Installation
Capturing some packets
Filtering
Inspecting packets
A versatile tool
Index

Learning Python Network Programming

Copyright © 2015 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: June 2015
Production reference: 1100615
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78439-600-8
www.packtpub.com

Credits

Authors
Dr. M. O. F...

Inhaltsverzeichnis