NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
Validador de IP con Regex en Python

Validador de IP con Regex en Python

El Validador de IP con Regex en Python le ayuda a garantizar que cualquier cadena de entrada siga el formato correcto para una dirección IPv4. Es perfecto para usar en configuraciones de servidor, filtros de firewall, validaciones de formularios y herramientas de red. Puede combinarlo con el Validador de Dirección MAC con Regex en Python para filtrado a nivel de dispositivo, o combinarlo con el Validador de UUID con Regex en Python cuando trabaje con identificadores y datos de red.

Validador de IP con Regex en Python - Documentación

¿Qué es una Dirección IP?

Una dirección IP es un identificador único asignado a cada dispositivo en una red. Las direcciones IPv4 usan cuatro números (0-255) separados por puntos, como:

192.168.0.1

Para validar este formato, usamos un patrón regex que verifica:

  • Exactamente cuatro octetos

  • Cada uno en el rango de 0 a 255

  • Separadores de punto (.)

Es importante asegurarse de que ninguno de los octetos supere 255. Por ejemplo, mientras 999.168.0.1 coincide con la estructura general, no es una dirección IP válida porque 999 está fuera de rango. Un patrón regex robusto tiene esto en cuenta, garantizando que cada sección sea un número entre 0 y 255.

Patrones Regex Comunes para Direcciones IPv4

Aquí hay expresiones regulares de uso común, cada una con un propósito ligeramente diferente:

Validación simple (solo estructura):

Verifica el formato de puntos correcto pero permite valores como 999.0.0.1, que no son IPs válidas.

Validación precisa (solo valores 0-255):

  • 25[0-5] - coincide con 250-255

  • 2[0-4][0-9] - coincide con 200-249

  • 1?[0-9]{1,2} - coincide con 0-199

  • El patrón completo garantiza 4 números separados por .

Patrón Regex para Dirección IP en Python

Aquí hay un regex que valida con precisión las direcciones IPv4 estándar:

^((25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})$

Explicación:

  • 25[0-5] - coincide con 250-255

  • 2[0-4][0-9] - coincide con 200-249

  • 1?[0-9]{1,2} - coincide con 0-199

  • El patrón completo garantiza 4 números separados por .

Compatibilidad de Flavors de Regex

Este patrón funciona sin problemas en las principales implementaciones de regex. Ya sea que use el módulo re de Python, JavaScript, Java, .NET, Perl, PCRE o Ruby, la sintaxis es lo suficientemente universal para validar direcciones IPv4 sin ajustes.

Ejemplo de Código en Python

import re

def is_valid_ip(ip): pattern = re.compile( r'^((25[0-5]|2[0-4][0-9]|1?[0-9]{1,2}).){3}' r'(25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})$' ) return bool(pattern.fullmatch(ip))

Entradas de prueba

ips = [ "192.168.0.1", "255.255.255.255", "999.100.100.100", # Inválida "172.16.254.01" ]

for ip in ips: print(f"{ip} -> {is_valid_ip(ip)}")

re.match(): Verifica si la expresión regular coincide justo al inicio de la cadena objetivo.

python import re result = re.match(r'\d+', '123abc') print(bool(result)) # Output: True
result = re.match(r'\d+', 'abc123') print(bool(result)) # Output: False

re.search(): Escanea toda la cadena para encontrar una coincidencia en cualquier parte.

python result = re.search(r'\d+', 'abc123') print(bool(result)) # Output: True

Use re.match() cuando solo le interesen las coincidencias al inicio de la cadena. Use re.search() si desea encontrar un patrón en cualquier parte de la cadena.

Hacer una Solicitud de API para Validación de IP en Python

import requests
def validateipwithapi(ipaddress, api_key):
url = f"https://api.example.com/validate?ip={ipaddress}&key={api_key}"
try:
response = requests.get(url, timeout=5)
response.raise_for_status()
result = response.json()
return result.get('valid', False)
except requests.exceptions.RequestException as error:
print(f"Error durante la solicitud de API: {error}")
return False

Casos de Uso

Consejos Profesionales

  • 🔄 Siempre elimine espacios en blanco antes de validar (ip.strip())

  • 🔒 Evite confiar en las validaciones del lado del cliente; valide también en el servidor

  • 🔀 Combínelo con verificaciones de patrón de subred para rangos CIDR

  • 🧠 Úselo en scripts con el Validador de GUID con Regex en Python para rastrear dispositivos en redes

Frequently Asked Questions

¿Este regex valida IPv6?

No. Este patrón solo coincide con direcciones IPv4. Use un patrón diferente para IPv6.

¿Puede validar IPs en notación CIDR como 192.168.1.0/24?

No, este regex no admite notación CIDR. Solo direcciones IPv4 independientes.

¿Son válidos los ceros iniciales en los octetos?

Técnicamente sí, pero algunos sistemas los tratan como octales. Evítelos para mayor claridad.

¿Puede usarse en Flask o Django?

Sí. Intégrelo en sus validadores de formularios o verificaciones personalizadas de campos de modelo.

¿Qué ocurre si la entrada tiene puntos extra u otros caracteres?

Fallará la validación, garantizando el cumplimiento estricto del formato.

¡Pruebe sus APIs hoy!

Escriba en lenguaje natural y Qodex lo convierte en pruebas seguras y listas para ejecutar.