Que faire pour s’assurer que l’IP saisie par l’utilisateur est valide ? Elle est entrée sous forme de chaîne de caractères.
Veuillez essayer le code suivant:
import socket
try:
socket.inet_aton(addr)
# IP valide
except socket.error:
# IP non valide
Depuis la version 3.4 de Python, pour vérifier si une adresse IPv6 ou IPv4 est correcte, il suffit d’utiliser le module ipaddress de la bibliothèque standard de Python.
Exemple :
#!/usr/bin/env python
import ipaddress
import sys
try:
ip = ipaddress.ip_address(sys.argv[1])
print('%s est une adresse IP%s correcte.' % (ip, ip.version))
except ValueError:
print('n\'est pas valide : %s' % sys.argv[1])
except:
print('Utilisation: IP %s' % sys.argv[0])
Pour l’installer avec pip :
pip install ipaddress
Voilà c’est assez facile pour s’assurer que l’IPv4 saisie par l’utilisateur est valide:
def validIP(address):
parts = address.split(".")
if len(parts) != 4:
return False
for item in parts:
if not 0 <= int(item) <= 255:
return False
return True