17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

urllib2<br />

Test SMTP<br />

>>> import socket<br />

>>> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)<br />

>>> s.connect(('', 25))<br />

>>> data = s.recv(1024)<br />

>>> data<br />

'220 localhost ESMTP\r\n'<br />

>>> s.close()<br />

Principaux modules<br />

CHAPITRE 8<br />

Cette simplicité ne supprime pas pour autant les possibilités et toutes les fonctionnalités<br />

de la couche réseau restent accessibles en Python. Pour plus d’informations sur<br />

le module socket, l’exercice 13 du chapitre 10 implémente un client/serveur TCP.<br />

Quoi qu’il en soit, à moins d’implémenter un protocole réseau exotique ou un serveur<br />

particulier, il est très rare de devoir utiliser directement le module socket. La bibliothèque<br />

standard fournit des modules pour la plupart des protocoles réseau connus.<br />

Cette section présente deux modules qui implémentent des clients pour les protocoles<br />

HTTP(S) et FTP (RFC 959).<br />

Les autres protocoles sont accessibles via les modules imaplib, smtplib, nntplib, et<br />

consorts.<br />

Le module urllib2, version plus avancée qu’urllib, utilise le module httplib, pour<br />

proposer des fonctionnalités d’accès à des URL (Universal Ressource Locator). Les<br />

URL sont en général les adresses de pages web.<br />

urllib2 gère tous les aspects du protocole HTTP, comme l’authentification, les cookies,<br />

les redirections, ou encore les flux sécurisés.<br />

Pour des appels simples, urllib2 fournit une fonction urlopen() qui permet de<br />

récupérer sous la forme d’un flux de type fichier le contenu de la ressource.<br />

Lorsqu’il est nécessaire de mettre en œuvre des options particulières du protocole<br />

HTTP, comme l’authentification, la gestion des redirections, ou les GET et POST,<br />

urllib2 fournit un système de handlers. Chaque option du protocole est alors gérée par<br />

une classe spécialisée, appelée handler. (HTTPBasicAuthHandler pour l’authentification,<br />

HTTPRedirectHandler pour les redirections, HTTPHandler pour les GET et POST).<br />

Ces handlers sont regroupés dans un objet appelé OpenerDirector, généré par la<br />

fonction build_opener(), et mis en place pour être utilisé par urlopen(), par le biais<br />

de la fonction install_opener(). OpenDirector invoque alors le bon handler, au bon<br />

moment, en fonction des besoins.<br />

257

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!