Hola. Estoy haciendo un programa el cual su objetivo final es entregar información sobre una dirección IP (país, cuidad, ISP y otros).
Esa información la entrega un sitio web. Entonces lo que el programa hace es ir al sitio y obtener un archivo XML con información sobre la IP.
Este es el código:
Using perl Syntax Highlighting
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request;
print "Direción IP a analizar: ";
chomp($IP = <STDIN>);
my $useragent = LWP::UserAgent->new;
$useragent->agent("Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1) Gecko/20090624");
my $url = "http://services.ipaddresslabs.com/iplocation/locateip?key=demo&ip=$IP";
my $req = HTTP::Request->new(GET => $url);
my $response = $useragent->request($req);
my $content = $response->content();
print $content;
Coloreado en 0.004 segundos, usando
GeSHi 1.0.8.4
Al hacer una prueba con una IP random como por ejemplo google.es obtendríamos lo siguiente:
Using xml Syntax Highlighting
<?xml version="1.0" encoding="UTF-8"?>
<response>
<query_status>
<query_status_code>OK</query_status_code>
<query_status_description>Query successfully performed.</query_status_description>
</query_status>
<ip_address>173.194.37.143</ip_address>
<geolocation_data>
<continent_code>NA</continent_code>
<continent_name>North America</continent_name>
<country_code_iso3166alpha2>US</country_code_iso3166alpha2>
<country_code_iso3166alpha3>USA</country_code_iso3166alpha3>
<country_code_iso3166numeric>840</country_code_iso3166numeric>
<country_code_fips10-4>US</country_code_fips10-4>
<country_name>United States</country_name>
<region_code>CA</region_code>
<region_name>California</region_name>
<city>Mountain View</city>
<postal_code>94043</postal_code>
<metro_code>807</metro_code>
<area_code>650</area_code>
<latitude>37.4192</latitude>
<longitude>-122.0574</longitude>
<isp>Google</isp>
<organization>Google</organization>
</geolocation_data>
</response>
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Todo hasta este punto va de maravilla, pero ahora lo que quiero es mostrar esa información de forma ordenada, como por ejemplo:
Using text Syntax Highlighting
Country: United States
Region Name: California
Region Code: CA
ISP: Google
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Entonces mi pregunta es ¿cómo lo puedo hacer? También me gustaría saber si la forma en la que está programada la primera parte del código es la mejor o si puede ser mejorado. Otra cosilla. Si alguien tiene un manual sobre Perl y me lo puede pasar estaría muy agradecido. Estoy aprendiendo este lenguaje, los
tutoriales que hay aquí ya casi los acabo. Bien, muchas gracias por leer.
AcidDr1nk