Programa de Python para verificar si la string dada es IPv4 o IPv6 o no es válida

Dada una string. La tarea es verificar si la string dada es IPv4 o IPv6 o no es válida.

Ejemplos:

Entrada: “192.168.0.1”
Salida: IPv4
Explicación: es una dirección IPv4 válida

Entrada: “2001:0db8:85a3:0000:0000:8a2e:0370:7334”
Salida: IPv6
Explicación: es una dirección IPv6 válida

Entrada: «255.32.555.5»
Salida: no válida
Explicación: es una dirección IPv4 no válida ya que el valor del tercer octeto (es decir, 555) es mayor que 255.

Entrada: «250.32:555.5»
Salida: no válida
Explicación: la string dada no es válida ya que consta de: y .

Para implementar el problema anterior, usaremos el ipaddressmódulo en Python. Este módulo proporciona las capacidades para crear, manipular y operar en direcciones y redes IPv4 e IPv6.

A continuación se muestra la implementación.

from ipaddress import ip_address, IPv4Address
  
def validIPAddress(IP: str) -> str:
    try:
        return "IPv4" if type(ip_address(IP)) is IPv4Address else "IPv6"
    except ValueError:
        return "Invalid"
  
if __name__ == '__main__' :  
        
    # Enter the Ip address 
    Ip = "192.168.0.1"
    print(validIPAddress(Ip)) 
  
    Ip = "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
    print(validIPAddress(Ip)) 
  
    Ip = "256.32.555.5"
    print(validIPAddress(Ip))  
  
    Ip = "250.32:555.5"
    print(validIPAddress(Ip))

Producción :

IPv4
IPv6
Invalid
Invalid

Publicación traducida automáticamente

Artículo escrito por chirags_30 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 *