Funcion Ip Publica [Perl]

Iniciado por isseu, 19 Abril 2010, 03:55 AM

0 Miembros y 1 Visitante están viendo este tema.

isseu

Una funcion que hice para probar un poco de "regex", usando la web http://ip.interchile.com/ devuelve tu ip publica como string,
Código (perl) [Seleccionar]
#!/usr/bin/perl
$ip=GetPublicIp();
if($ip ne "Error"){
print $ip;
}else{
print "Error";
}

sub GetPublicIp{
#Funcion Por Isseu
use LWP::Simple;
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Response;
$URL="http://ip.interchile.com/";
$browser = LWP::UserAgent->new();
$browser->timeout(5);
my $request = HTTP::Request->new(GET => $URL);
my $response = $browser->request($request);
if(!$response->is_error()){
$data=$response->content();
$data=substr($data,630,50);
if($data=~/<font size=7>(.+\..+\..+\..+)<\/font>/){
    return $1;
    }else{
print "Error";
}


}else{
print "Error";
}
}




~ Yoya ~

estas usando modulos de mas, y podrias usar una expresion mas corta, asi no gasta mas recursos...
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

leogtz

Código (perl) [Seleccionar]
#!/usr/bin/perl
use strict;
use warnings;
use LWP::Simple;
my $ip = get("http://icanhazip.com/");
print $ip;
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com