El módulo ipaddress interpreta IPv4, IPv6 y redes CIDR sin dependencias externas. Sus objetos normalizados permiten comprobar pertenencia, versión y propiedades como dirección privada, global o loopback.
from ipaddress import ip_address, ip_network
client = ip_address("192.0.2.25")
allowed = ip_network("192.0.2.0/24")
if client in allowed:
print("allowed")
print(client.version, client.is_private)
Cómo usarlo con seguridad
Captura ValueError al recibir datos externos y decide si una red con bits de host debe rechazarse o normalizarse con strict=False. Las propiedades ayudan al análisis, pero no sustituyen reglas de firewall ni una configuración fiable de proxies.
Para reforzar la base, consulta guía de collections en Python y guía de type hints.
La documentación oficial de Python, consultada el 22 de julio de 2026, describe la API, los casos límite y la compatibilidad entre versiones.