Python validar dirección IP
- Validar una dirección IP en Python
-
Utilice el módulo
ipaddress
para validar una dirección IP en Python -
Utilice el método
RegEx.search()
para validar una dirección IP en Python - Validar la dirección IP manualmente en Python
IP significa protocolo de Internet, una dirección única asignada a cada computadora conectada a Internet. Hay dos versiones de direcciones IP denominadas IPv4
e IPv6
.
El IPv4 se representa en notación decimal con puntos y consta de cuatro octetos, y cada octeto contiene un número que va del 0 al 255. Las direcciones IPv6 contienen ocho grupos de cuatro dígitos hexadecimales, cada uno de los cuales representa 16 bits.
Los dos puntos separan los grupos (:
). En esta guía, validaremos una dirección IPv4.
Validar una dirección IP en Python
Validar una dirección IP significa comprobar si la IP de entrada es válida o no.
Por ejemplo:
Input: 192.168.52.124
Output: Valid IP address
Input: 656.1.2.3
Output: Invalid IP address
Utilice el módulo ipaddress
para validar una dirección IP en Python
El ipaddress
es un módulo en Python que se utiliza para verificar y clasificar las direcciones IP en función de sus tipos (IPv4 o IPv6). También realiza diferentes operaciones como operaciones aritméticas, comparación, etc.
Este módulo tiene un método llamado ip_address()
que valida una dirección IP. Esta función toma una IP de cadena como entrada, y si puede convertir con éxito la IP de cadena en un objeto de dirección IPv4 o IPv6, significa que la dirección IP de entrada es válida.
De lo contrario, generará un error de valor de que la IP no parece ser una dirección IPv4 o IPv6. Importamos el módulo ipaddress
en el siguiente código y escribimos el código completo en el bloque try-except
.
Si la IP es válida, no se generará ninguna excepción, y si no, la excepción de error de valor será manejada por el bloque excepto
.
Caso 1: para una dirección IP válida
# Python 3.x
import ipaddress
try:
ip = ipaddress.ip_address("192.168.1.1")
print("Valid IP Address")
except ValueError:
print("Invalid IP Address")
Producción :
#Python 3.x
Valid IP Address
Caso 2: para una dirección IP no válida
# Python 3.x
import ipaddress
try:
ip = ipaddress.ip_address("992.168.1.1")
print("Valid IP Address")
except ValueError:
print("Invalid IP Address")
Producción :
#Python 3.x
Invalid IP Address
Utilice el método RegEx.search()
para validar una dirección IP en Python
Otra forma de validar una dirección IP es hacerla coincidir con un patrón predefinido de una dirección IP válida a través de una expresión regular. Hemos validado una dirección IP en el siguiente código llamando al método buscar()
del módulo re
y pasando la expresión regular y la IP como argumento.
Este método devuelve True
si la IP es válida. De lo contrario, devuelve False
.
Código de ejemplo:
# Python 3.x
import re
ip = "192.168.2.3"
regex = "^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])$"
if re.search(regex, ip):
print("Valid IP Address")
else:
print("Invalid IP Address")
Producción :
#Python 3.x
Valid IP Address
Validar la dirección IP manualmente en Python
Podemos validar una dirección IP sin ninguna expresión regular de biblioteca integrada. Hemos creado una función que valida la dirección IP al verificar estas tres condiciones en el siguiente código.
La IP no será válida si alguna de las siguientes condiciones es “Verdadera” en el código.
- El número de octetos no es cuatro.
- Cualquier octeto contiene cualquier cosa que no sea un número entero.
- Cualquier número dentro de un octeto se encuentra fuera del rango de 0-255.
Código de ejemplo:
# Python 3.x
def validate_ip_address(ip):
octects = ip.split(".")
if len(octects) != 4:
return "Invalid IP"
for number in octects:
if not isinstance(int(number), int):
return "Invalid IP"
if int(number) < 0 or int(number) > 255:
return "Invalid IP"
return "Valid IP"
validate_ip_address("192.168.-1.1")
Producción :
#Python 3.x
'Invalid IP'
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn