Convertir dirección IP a entero y viceversa

Usaremos el módulo ipaddress para este propósito. ipaddress es un módulo que ayuda en la creación, manipulación y operación de direcciones y redes IPv4 e IPv6.

La motivación de convertir direcciones IP a números enteros y viceversa es que otros módulos que usan direcciones IP (como socket) generalmente no aceptarán objetos del módulo ipaddress directamente. En su lugar, deben convertirse en una string o un número entero que el otro módulo aceptará.

Sintaxis: ipaddress.ip_address(dirección)

Parámetro: pasar la dirección IP en forma de número entero o string. Los valores enteros inferiores a 2**32 se consideran direcciones IPv4.

Devoluciones: se devuelve el objeto IPv4Address o IPv6Address dependiendo de la dirección IP pasada como argumento. Si la dirección pasada no representa una dirección IPv4 o IPv6 válida, se genera un ValueError.

Programa para convertir números enteros a dirección IP: 

Python3

# importing the module
import ipaddress
  
# converting int to IPv4 address
print(ipaddress.ip_address(3221225000))
print(ipaddress.ip_address(123))
  
# converting int to IPv6 address
print(ipaddress.ip_address(42540766400282592856903984001653826561))

Producción:

191.255.254.40
0.0.0.123
2001:db7:dc75:365:220a:7c84:d796:6401

Para convertir direcciones IP a números enteros: 

Python3

# importing the module
import ipaddress
  
# converting IPv4 address to int
addr1 = ipaddress.ip_address('191.255.254.40')
addr2 = ipaddress.ip_address('0.0.0.123')
print(int(addr1))
print(int(addr2))
  
# converting IPv6 address to int
addr3 = ipaddress.ip_address('2001:db7:dc75:365:220a:7c84:d796:6401')
print(int(addr3))

Producción:

3221225000
123
42540766400282592856903984001653826561

Publicación traducida automáticamente

Artículo escrito por MuskanKalra1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *