#GeoIP City
Connect to MaxMind GeoIP City databases.
Compatible with Perl 6 Rakudo 2013.02+,
##REQUIREMENTS
####Ubuntu Linux
- In terminal enter
sudo apt-get install libgeoip1 geoip-database-contrib
####Mac OS X
- Install MacPorts.
- In terminal enter
sudo port install libgeoip GeoLiteCity
. - Add
DYLD_LIBRARY_PATH=/opt/local/lib
to your~/.profile
and relog.
####Microsoft Windows
?
####Other systems
- Follow installation instructions from MaxMind.
##USAGE
use GeoIP::City;
my $geo = GeoIP::City.new;
say $geo.locate( 'perl.org' );
say $geo.locate( '207.171.7.63' );
In both cases it should print following Hash:
{
"area_code" => 310,
"city" => "Beverly Hills",
"continent_code" => "NA",
"country" => "United States",
"country_code" => "US",
"dma_code" => 803,
"latitude" => "34.074902",
"longitude" => "-118.399696",
"postal_code" => "90209",
"region" => "California",
"region_code" => "CA",
"time_zone" => "America/Los_Angeles"
}
Precision of response and amount of its fields may vary.
Nil
is returned if location is not found.
###Paid databases
If you own paid database you can provide its location.
my $geo = GeoIP::City.new( '/Users/bbkr/GeoIPCity.dat' );
###Info
You can get version and date of used database.
say $geo.info;
Will print.
GEO-533LITE 20110501 Build 1 Copyright (c) 2011 MaxMind Inc All Rights Reserved
Released under Artistic License 2.0.
You can find me (and many awesome people who helped me to develop this module) on irc.freenode.net #perl6 channel as bbkr.