Esta biblioteca facilita la manipulación y validación de direcciones IP, así como la realización de operaciones relacionadas con subredes, como la obtención de hosts válidos en una subred, la verificación de pertenencia de una dirección IP a una subred y más:
import ipaddress # Crear una instancia de dirección IP ip = ipaddress.ip_address('192.168.0.1') print(f"La dirección es {ip}") print(f"La versión de la IP anterior es: {ip.version}")
Y este sería el resultado:
Podemos extraer más información de una red de esta forma:
import ipaddress # Crear una instancia de red/subred red = ipaddress.ip_network('192.168.0.0/24') print(red) # 192.168.0.0/24 print(red.network_address) # 192.168.0.0 print(red.broadcast_address) # 192.168.0.255
Y nos lo extrae:
Podemos comprobar si una IP pertenece a una subred o no de esta forma:
import ipaddress red = ipaddress.ip_network('192.168.0.0/24') # Verificar si una dirección IP pertenece a la subred direccion = ipaddress.ip_address('192.168.0.100') print(direccion in red)
Si por ejemplo ponemos la IP en otro rango, nos dará false, porque ya no pertenece a la /24:
import ipaddress red = ipaddress.ip_network('192.168.0.0/24') # Verificar si una dirección IP pertenece a la subred direccion = ipaddress.ip_address('192.168.1.100') print(direccion in red)