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