Re: Regex de IP para acl
--- Em seg, 14/3/11, Bruno Francisco Rodrigues <brunofranrodrigues@gmail.com> escreveu:
> De: Bruno Francisco Rodrigues <brunofranrodrigues@gmail.com>
> Assunto: Regex de IP para acl
> Para: "debian-user-portuguese" <debian-user-portuguese@lists.debian.org>
> Data: Segunda-feira, 14 de Março de 2011, 10:54
> Bom dia lista.
> Gostaria de saber se alguém pode me ajudar com uma regex
> de IP
> É esta que esta ai:
>
> ^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})|\/[0-9]{2}?$/
>
> A idéia basicamente é casar “IP/MASCARA” e casar
> somente “IP” mais
> nunca casar “IP/” pois o uso seria em um CGI para
> adicionar ips a um
> acl do squid.
> E caso eu adicione um ip assim 192.168.100.2/ e der restart
> no serviço
> ela vai xiar em razão da syntax do IP.
>
> Fico no aguardo.
>
> Att
> --
> Bruno F. Rodrigues
> +55 11 66583064
>
>
Olá!
Não entendi muito bem o que você precisa. Seria algo como (A) ou seria como (B)?
==========(A)==========
#!/usr/bin/perl
use strict;
use warnings;
my $ip=shift();
if ($ip =~ m/((^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})|\/[0-9]{2}))(?=$)/g)
{
print " casou: $ip\n"
}
else
{
print "nao casou: $ip: \n";}
==========(A)==========
==========(B)==========
#!/usr/bin/perl
use strict;
use warnings;
my $ip=shift();
if ($ip =~ m/((^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})|\/[0-9]{2}))/g)
{
$ip =~ s/(^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})|\/[0-9]{2}).*/$1/g;
print "$ip\n"
}
==========(B)==========
[ ]s, Henry
Reply to: