Learning Python Network Programming
eBook - ePub

Learning Python Network Programming

Dr. M. O. Faruque Sarker, Sam Washington

Compartir libro
  1. 320 páginas
  2. English
  3. ePUB (apto para móviles)
  4. Disponible en iOS y Android
eBook - ePub

Learning Python Network Programming

Dr. M. O. Faruque Sarker, Sam Washington

Detalles del libro
Vista previa del libro
Índice
Citas

Información del libro

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.

Preguntas frecuentes

¿Cómo cancelo mi suscripción?
Simplemente, dirígete a la sección ajustes de la cuenta y haz clic en «Cancelar suscripción». Así de sencillo. Después de cancelar tu suscripción, esta permanecerá activa el tiempo restante que hayas pagado. Obtén más información aquí.
¿Cómo descargo los libros?
Por el momento, todos nuestros libros ePub adaptables a dispositivos móviles se pueden descargar a través de la aplicación. La mayor parte de nuestros PDF también se puede descargar y ya estamos trabajando para que el resto también sea descargable. Obtén más información aquí.
¿En qué se diferencian los planes de precios?
Ambos planes te permiten acceder por completo a la biblioteca y a todas las funciones de Perlego. Las únicas diferencias son el precio y el período de suscripción: con el plan anual ahorrarás en torno a un 30 % en comparación con 12 meses de un plan mensual.
¿Qué es Perlego?
Somos un servicio de suscripción de libros de texto en línea que te permite acceder a toda una biblioteca en línea por menos de lo que cuesta un libro al mes. Con más de un millón de libros sobre más de 1000 categorías, ¡tenemos todo lo que necesitas! Obtén más información aquí.
¿Perlego ofrece la función de texto a voz?
Busca el símbolo de lectura en voz alta en tu próximo libro para ver si puedes escucharlo. La herramienta de lectura en voz alta lee el texto en voz alta por ti, resaltando el texto a medida que se lee. Puedes pausarla, acelerarla y ralentizarla. Obtén más información aquí.
¿Es Learning Python Network Programming un PDF/ePUB en línea?
Sí, puedes acceder a Learning Python Network Programming de Dr. M. O. Faruque Sarker, Sam Washington en formato PDF o ePUB, así como a otros libros populares de Informatica y Reti di computer. Tenemos más de un millón de libros disponibles en nuestro catálogo para que explores.

Información

Año
2015
ISBN
9781784391157
Edición
1
Categoría
Informatica

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...

Índice