¿Qué es import ipaddress y cómo funciona con Python?

| Última modificación: 3 de febrero de 2025 | Tiempo de Lectura: 3 minutos

Hace poco un estudiante me preguntó cómo verificar si una IP pertenecía a una subred específica sin usar herramientas externas en Python. La respuesta que le di es la que te daré ahora: el import ipaddress es un módulo de Python que hace que la manipulación de direcciones IPv4 e IPv6 sea mucho más fácil, algo que es esencial para desarrolladores y administradores de redes.

En el día de hoy quiero contarte por qué te conviene usar esta herramienta que te permite validar, convertir y manipular direcciones sin mayores complejidades, y cuáles son sus funcionalidades.

 import ipaddress

¿Qué es import ipaddress?

El de import ipaddress es un módulo que forma parte de la biblioteca estándar de Python y nos brinda un modo bastante eficiente para manejar direcciones IP y redes. Por medio de este método puedes:

El módulo import ipaddress es parte de la biblioteca estándar de Python y proporciona una manera eficiente de manejar direcciones IP y redes. Con este módulo, puedes:

  • Crear y manipular direcciones IPv4 e IPv6.
  • Determinar si una IP pertenece a una subred específica.
  • Convertir direcciones entre formatos numéricos y de cadena.
  • Realizar operaciones lógicas y comparaciones entre IPs.

Desde Python 3.3, import ipaddress está incluido de forma nativa, por lo que no necesitas instalar nada adicional.

¿Cómo funciona import ipaddress en Python?: sus usos

El módulo de import ipaddress tiene muchas funcionalidades y usos. Veamos algunos de ellos y cómo podemos implementarlos por medio de ejemplos:

  • Crear y validar direcciones IP: Para empezar, puedes crear objetos de direcciones IP de forma sencilla:
import ipaddress

ip1 = ipaddress.ip_address('192.168.1.1')
ip2 = ipaddress.ip_address('2001:db8::1')

print(ip1.is_private) # True (IP privada)
print(ip2.is_global) # True (IP pública)

El método is_private nos indica si una IP pertenece a una red privada, mientras que is_global verifica si es una IP pública.

  • Convertir direcciones IP a enteros: Si necesitas comparar direcciones de forma numérica, import ipaddress permite convertirlas en valores enteros:
ip = ipaddress.ip_address('192.168.1.1')
print(int(ip)) # 3232235777

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

Esto es de gran utilidad para ordenar IPs o almacenarlas en bases de datos de forma eficiente.

  • Trabajar con subredes y redes: Puedes crear redes y verificar si una IP pertenece a una subred específica:
red = ipaddress.ip_network('192.168.1.0/24')

print('192.168.1.100' in red) # True
print('192.168.2.1' in red) # False

También puedes recorrer todas las direcciones disponibles en una red:

for ip in red.hosts():
print(ip)

Esto te puede servir cuando necesitas asignar direcciones IP dentro de una subred.

  • Manipular interfaces de red: El módulo también permite manejar interfaces de red, combinando direcciones con máscaras:
interface = ipaddress.ip_interface('192.168.1.1/24')

print(interface.network) # 192.168.1.0/24
print(interface.ip) # 192.168.1.1

Esto es útil cuando necesitas trabajar con configuraciones de red y asignaciones IP.

Diferencias entre IPv4 e IPv6 en import ipaddress

El módulo soporta tanto IPv4 como IPv6 con una API unificada. Veamos cómo se usa con IPv6:

ipv6 = ipaddress.ip_address('2001:db8::1')

print(ipv6.compressed) # 2001:db8::1 (notación compacta)
print(ipv6.exploded) # 2001:0db8:0000:0000:0000:0000:0000:0001 (notación expandida)

Con estas herramientas puedes trabajar con cualquier versión de IP sin preocuparte por la compatibilidad.

Import ipaddress y otros módulos: algunas diferencias

Existen otros métodos similares al módulo import ipaddress para trabajar con direcciones IP, por eso hemos hecho un análisis comparativo entre todos ellos:

Característica ipaddress socket netaddr pyroute2
Funcionalidad principal Manejo y validación de direcciones IP y redes Conversión y manipulación básica de direcciones IP Manejo avanzado de redes y subredes Interacción con la configuración de red del sistema
Soporte para IPv4/IPv6
Validación de direcciones IP No No
Conversión entre formatos (str/int) No
Manipulación de subredes No
Interacción con interfaces de red No No No
Facilidad de uso Alta Media Media Baja
Parte de la biblioteca estándar No No
Casos de uso Validación de IPs, manejo de subredes Conversión y verificación de direcciones IP Administración de redes y direcciones IP Gestión avanzada de redes en sistemas Linux

Si quieres especializarte en redes, automatización y desarrollo backend, KeepCoding tiene el Bootcamp de programación desde cero para ti. Con nuestro programa adquirirás habilidades clave en programación y redes, abriéndote paso en un sector con gran demanda, excelentes salarios y estabilidad laboral. Es el momento de impulsar tu carrera.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Aprende a programar desde cero

Full Stack JR. Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado