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

Validador de IP Address Regex em Python

O Validador de IP Address Regex em Python ajuda você a garantir que qualquer string de entrada siga o formato correto de um endereço IPv4. Perfeito para uso em configurações de servidor, filtros de firewall, validações de formulários e ferramentas de networking. Você pode combiná-lo com o Validador de Regex de Endereço MAC em Python para filtragem em nível de dispositivo, ou usá-lo junto com o Validador de Regex de UUID em Python quando trabalhar com identificadores e dados de rede.

Validador de IP Address Regex em Python - Documentação

O que é um Endereço IP?

Um endereço IP é um identificador único atribuído a cada dispositivo em uma rede. Os endereços IPv4 usam quatro números (0-255) separados por pontos, como:

192.168.0.1

Para validar esse formato, usamos um padrão regex que verifica:

  • Exatamente quatro octetos

  • Cada um variando de 0 a 255

  • Separadores de ponto (.)

É importante garantir que nenhum dos octetos exceda 255. Por exemplo, enquanto 999.168.0.1 corresponde à estrutura geral, não é um endereço IP válido porque 999 está fora do intervalo. Um padrão regex robusto leva isso em conta, garantindo que cada seção seja um número entre 0 e 255.

Padrões Regex Comuns para Endereços IPv4

Veja expressões regulares comumente usadas, cada uma servindo a um propósito ligeiramente diferente:

Validação simples (apenas estrutura):

Verifica o formato de pontos correto mas permite valores como 999.0.0.1, que não são IPs válidos.

Validação precisa (valores de 0 a 255 apenas):

  • 25[0-5] - corresponde a 250-255

  • 2[0-4][0-9] - corresponde a 200-249

  • 1?[0-9]{1,2} - corresponde a 0-199

  • O padrão completo garante 4 desses números separados por .

Padrão Regex para Endereço IP em Python

Aqui está um regex que valida com precisão endereços IPv4 padrão:

^((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})$

Explicação:

  • 25[0-5] - corresponde a 250-255

  • 2[0-4][0-9] - corresponde a 200-249

  • 1?[0-9]{1,2} - corresponde a 0-199

  • O padrão completo garante 4 desses números separados por ponto

Compatibilidade de Sabores Regex

Boa notícia: esse padrão funciona em todas as principais implementações de regex. Seja usando o módulo re do Python, trabalhando em JavaScript, Java, .NET, Perl, PCRE ou Ruby, a sintaxe é universal o suficiente para validar endereços IPv4 sem ajustes.

Extraindo Endereços IPv4 de Textos Maiores

Se você precisar extrair endereços IPv4 válidos de um corpo de texto maior, como arquivos de log, mensagens de usuários ou dumps de configuração, um padrão regex bem elaborado pode fazer o trabalho de forma eficiente.

Para extrair endereços IPv4 de texto, use um padrão que:

  • Identifique quatro octetos separados por pontos

  • Garanta que cada octeto esteja no intervalo 0-255

Suportado em: Python, JavaScript, Java, PCRE, Ruby, Perl e .NET.

Exemplo de Código 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 teste

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

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

re.match(): Verifica se o regex corresponde no início da string de destino.

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

re.search(): Percorre a string inteira para encontrar uma correspondência em qualquer lugar.

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

Use re.match() quando só se importar com correspondências no início da string. Use re.search() para encontrar um padrão em qualquer parte da string.

Fazendo uma Requisição de API para Validação de IP em Python

import requests
def validateipwithapi(ipaddress, api_key):
url = f"https://api.example.com/validate?ip={ipaddress}&key={apikey}"
try:
response = requests.get(url, timeout=5)
response.raiseforstatus()
result = response.json()
return result.get('valid', False)
except requests.exceptions.RequestException as error:
print(f"Erro na requisição de API: {error}")
return False

Casos de Uso

Dicas Pro

  • 🔄 Sempre remova espaços em branco antes da validação (ip.strip())

  • 🔒 Evite confiar apenas em validações do lado do cliente; valide também no servidor

  • 🔀 Combine com verificações de padrão de sub-rede para intervalos CIDR

  • 🧠 Use em scripts com o Validador de Regex de GUID em Python para rastrear dispositivos em redes

Frequently Asked Questions

Este regex valida IPv6?

Não. Esse padrão corresponde apenas a endereços IPv4. Use um padrão diferente para IPv6.

Ele consegue validar IPs em notação CIDR como 192.168.1.0/24?

Não, esse regex não suporta notação CIDR. Apenas endereços IPv4 isolados.

Zeros à esquerda em octetos são válidos?

Tecnicamente sim, mas alguns sistemas os tratam como octal. Evite-os para maior clareza.

Posso usar isso no Flask ou Django?

Sim. Incorpore-o nos seus validadores de formulário ou verificações personalizadas de campo de modelo.

O que acontece se a entrada tiver pontos extras ou caracteres inválidos?

A validação falhará, garantindo conformidade estrita com o formato.

Teste suas APIs hoje!

Escreva em português simples, o Qodex transforma em testes seguros e prontos para executar.