- Gerar link
- X
- Outros aplicativos
Postagem em destaque
- Gerar link
- X
- Outros aplicativos
Sempre que precisamos filtrar um arquivo de log ou até mesmo validar o valor de uma variável ou campo, dependendo da variação, a tarefa se torna mais chata e com o endereço de IP não é diferente. Para resolução dessa problema vou utilizar o comando egrep + regex para validar o campo.
Antes precisamos entender o que iremos validar.
Mas felizmente montei a bendita expressão regular, ficou assim:
'(\s|^)(([0-9]|[1-9][0-9]|1[0-9]{,2}|2[0-4][0-9]|25[0-5])[.]){3}([0-9]|[1-9][0-9]|1[0-9]{,2}|2[0-4][0-9]|25[0-5])(\s|$)'
Dessa forma o IP é validado em qualquer posição do texto, até mesmo sozinho.
Vamos testar:
Validando IP em qualquer posição da expressão.
IP sozinho
Tentativa com dois zeros consecutivos
Tentativa fora da faixa IP.
Espero que seja útil pra vocês.
Antes precisamos entender o que iremos validar.
- Comprimento entre 7 à 15 caracteres
- Três pontos, sendo um ponto ao final de cada octeto, exceto o último.
- Cada octeto deverá ter entre 1 à 3 digitos.
- Cada octeto deverá suportar variação de números entre 0 à 255.
- Não pode aceitar zeros consecutivos no mesmo octeto. Exemplo: 00 ou 000
Mas felizmente montei a bendita expressão regular, ficou assim:
'(\s|^)(([0-9]|[1-9][0-9]|1[0-9]{,2}|2[0-4][0-9]|25[0-5])[.]){3}([0-9]|[1-9][0-9]|1[0-9]{,2}|2[0-4][0-9]|25[0-5])(\s|$)'
Dessa forma o IP é validado em qualquer posição do texto, até mesmo sozinho.
Vamos testar:
Validando IP em qualquer posição da expressão.
echo "Endereço 10.1.1.1 obtido" | egrep '(\s|^)(([0-9]|[1-9][0-9]|1[0-9]{,2}|2[0-4][0-9]|25[0-5])[.]){3}([0-9]|[1-9][0-9]|1[0-9]{,2}|2[0-4][0-9]|25[0-5])(\s|$)'
Endereço 10.1.1.1 obtido
IP sozinho
echo "10.1.1.1" | egrep '(\s|^)(([0-9]|[1-9][0-9]|1[0-9]{,2}|2[0-4][0-9]|25[0-5])[.]){3}([0-9]|[1-9][0-9]|1[0-9]{,2}|2[0-4][0-9]|25[0-5])(\s|$)'
10.1.1.1
Tentativa com dois zeros consecutivos
echo "Endereço 1.1.00.0 obtido" | egrep '(\s|^)(([0-9]|[1-9][0-9]|1[0-9]{,2}|2[0-4][0-9]|25[0-5])[.]){3}([0-9]|[1-9][0-9]|1[0-9]{,2}|2[0-4][0-9]|25[0-5])(\s|$)'
<vazio>
Tentativa fora da faixa IP.
echo "Endereço 1.1.1.256 obtido" | egrep '(\s|^)(([0-9]|[1-9][0-9]|1[0-9]{,2}|2[0-4][0-9]|25[0-5])[.]){3}([0-9]|[1-9][0-9]|1[0-9]{,2}|2[0-4][0-9]|25[0-5])(\s|$)'
<vazio>
Espero que seja útil pra vocês.
Comentários
Postar um comentário