#!/usr/bin/perl
#
# Localiser géographiquement une ou plusieurs adresses IP.
# Script par BoboTiG, 04 septembre 2009 (MàJ le 21 septembre 2010).
#
# Usage : perl localiser-ip.pl <IP> [<IP>...]
#
# Dépendances :
#	cpan -i LWP::UserAgent
#	cpan -i Encode
#
# Historique :
#	21 septembre 2010 :
#		- utilisation de Encode pour encoder les accents
#		- revue du code
#	18 mai 2010 :
#		- correction de la regexp
#		- localisation de plusieurs IP possible :
#			perl localiser-ip.pl <IP> [<IP>...]
#


use strict;
use Encode;
use LWP::UserAgent;
use warnings;

if ( @ARGV < 1 ) {
	print 'Usage : perl localiser-ip.pl <IP> [<IP>...]'."\n"
} else {
	foreach my $IP ( @ARGV ) {
		my $ua = LWP::UserAgent->new();
		$ua->agent('Mozilla/5.0 (X11; U; Linux x86_64; fr; rv:1.9.1.12) Gecko/20100911 Iceweasel/3.5.12 (like Firefox/3.5.12)');
		my $requete = $ua->get('http://www.localiser-ip.com/?ip='.$IP);
		if ( $requete->is_success ) {
			$requete->content =~ m/<b>(.+)<\/b>/m;
			my $resultat = Encode::encode_utf8($+);
			if ( $resultat && $resultat ne ' ( - ).' ) {
				printf "%s\t: %s\n", $IP, $resultat;
			} else {
				printf "%s\t: inconnue...\n", $IP;
			}
		} else { printf "%s\t: connexion merdique !\n", $IP; }
	}
}
exit 0;

