.. module:: sessions Anàlisi de sessions =================== Les línies següents s'han extret dels registres d'inici de sessió de diferents ordinadors:: Mar 7 18:09:52 srv01 sshd[539841]: Invalid user jeel from 128.199.33.46 port 42742 Mar 7 18:09:52 dsktp27 sshd[539841]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=128.199.33.46 Mar 7 18:09:52 a936 sshd[539841]: pam_unix(sshd:auth): check pass; user unknown De tota la informació d'una línia només ens interessa l'adreça IPv4. Una adreça IPv4 està formada per quatre nombres entre 0 i 255 separats per punts. A l'exemple anterior apareix l'adreça 128.199.33.46 a les dues primeres línies mentre que no n'apareix cap a la darrere. Suposa que una adreça IPv4 apareix o bé entre les paraules *from* i *port*, o bé darrere de *rhost=*. En aquest darrer cas, poden haver-hi espais en blanc darrere de l'adreça IPv4. Observa que *from* i *port* estan separades de l'adreça IPv4 per un espai en blanc i que l'adreça IPv4 de darrere *rhost=* està al final de la línia. Dissenya la funció següent i desa-la al mòdul :mod:`sessions` (:file:`sessions.py`): .. function:: extreu_ip(linia, ip) Retorna l'adreça IPv4 continguda en `linia` i també la línia havent substituït l'adreça IPv4 original per `ip`. Si `linia` no conté cap adreça IPv4, retorna l\'*string* buit i la línia original. Per exemple: .. literalinclude:: test-sessions-extreu_ip.txt :language: pycon :start-after: ---- inici :end-before: ---- fi Trobaràs més tests al fitxer :download:`test-sessions-extreu_ip.txt`