The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Net::IPInfoDB - Perl interface to ipinfodb.com's Geolocation XML API

SYNOPSIS

    use Net::IPInfoDB;

    my $g = Net::IPInfoDB->new($key);
    my $c = $g->get_city("128.103.1.1");

USAGE

Net::IPInfoDB makes use of the free Geolocation API from ipinfodb.com. Note that you'll need to register your app for a (free) API key in order to use this module. Information on the API is available at http://ipinfodb.com/ip_location_api.php.

Basic usage follows the API petty closely:

    use Net::IPInfoDB;

    my $g = Net::IPInfoDB->new;
    $g->key($api_key);

    my $addr = $g->get_city($ip_address);

Get data from the returned object via method calls:

    printf "%s is located at (%s, %s)\n",
        $addr->ip_address, $addr->latitude, $addr->longitude;

These methods are detailed below.

METHODS

new

Creates a new Net::IPInfoDB instance.

Optionally takes a key as the first argument; if provided, will call the key method for you. If the $ENV{IPINFODB_TOKEN} exists, Net::IPInfoDB assumes it contains the token and will call key($ENV{IPINFODB_TOKEN}) for you.

key

Use key to specify your API key. Calling get_city or get_country without specifying a key will result in a failure.

get_country

Returns country-level details about the host or ip address. Takes an IP address or hostname as the only argument. Returns a Net::IPInfoDB::Result object.

get_city

Returns city-level details, which is more resource-intensive on the server. If you only need the country name, avoid using the city precision API. Returns a Net::IPInfoDB::Result object.

CACHING

Net::IPInfoDB does not do any caching of responses. You should definitely cache your responses using Cache::Cache or something similar.

Net::IPInfoDB::Results object

The get_city and get_country methods return a Net::IPInfoDB::Result object, which has the following read-only methods, which correspond directly to the data returned:

status_code
status_message
ip_address
country_code
country_name
region_name
city_name
zip_code
latitude
longitude
timezone

There is also the following additional methods:

web_uri

web_uri returns the web URI of the IP, for fancier viewing.

fields

fields returns an array of fieldnames in the Net::IPInfoDB::Result object, for iteration.

AUTHOR

Darren Chamberlain <darren@cpan.org>

VERSION

This is version 3.0. Note that the major version of Net::IPInfoDB matches the ipinfodb.com API version.