Python validar dirección IP

Fariba Laiq 21 junio 2023
  1. Validar una dirección IP en Python
  2. Utilice el módulo ipaddress para validar una dirección IP en Python
  3. Utilice el método RegEx.search() para validar una dirección IP en Python
  4. Validar la dirección IP manualmente en Python
Python validar dirección IP

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.

  1. El número de octetos no es cuatro.
  2. Cualquier octeto contiene cualquier cosa que no sea un número entero.
  3. 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'
Fariba Laiq avatar Fariba Laiq avatar

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

Artículo relacionado - Python IP Address