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.