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:
{{pasted_image_20230531111047.png|}}
===== EXTRAER DATOS DE UNA RED/SUBRED =====
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:
{{pasted_image_20230531111804.png|}}
===== VERIFICAR SI UNA IP PERTENECE A UNA SUBRED =====
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)
{{pasted_image_20230531111924.png|}}
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)
{{pasted_image_20230531112003.png|}}
===== OBTENER HOSTS VÁLIDOS DE UNA SUBRED =====
Por ejemplo, podemos obtener uno a uno cada IP que exista dentro de una subred, por ejemplo de una /24:
import ipaddress
red = ipaddress.ip_network('192.168.0.0/24')
hosts = list(red.hosts())
print(hosts)
{{pasted_image_20230531112137.png|}}