IP::Country::DB_File(3p)

NAME
IP::Country::DB_File - IPv4 and IPv6 to country translation using DB_File

VERSION
version 3.03

SYNOPSIS
    use IP::Country::DB_File;

    my $ipcc = IP::Country::DB_File->new();
    my $cc = $ipcc->inet_atocc('1.2.3.4');
    my $cc = $ipcc->inet_atocc('host.example.com');
    my $cc = $ipcc->inet6_atocc('1a00:300::');
    my $cc = $ipcc->inet6_atocc('ipv6.example.com');

DESCRIPTION
IP::Country::DB_File is a light-weight module for fast IP address to country translation based on DB_File. The country code database is stored in a Berkeley DB file. You have to build the database using "build_ipcc.pl" or IP::Country::DB_File::Builder before you can lookup country codes.

This module tries to be API compatible with the other IP::Country modules. The installation of IP::Country is not required.

There are many other modules for locating IP addresses. Neil Bowers posted an excellent review <http://neilb.org/reviews/ip-location.html>. Some features that make this module unique:

•   IPv6 support.

•   Pure Perl. Math::Int64 is needed to build a database with IPv6 addresses but the lookup code only uses Perl core modules.

•   Reasonably fast and accurate.

•   Builds the database directly from the statistics files of the regional internet registries. No third-party tie-in.

CONSTRUCTOR

  new
    my $ipcc = IP::Country::DB_File->new( [$db_file] );

Creates a new object and opens the database file $db_file. $db_file defaults to ipcc.db. The database file can be built with IP::Country::DB_File::Builder or the "build_ipcc.pl" command.

METHODS

  inet_atocc
    my $cc = $ipcc->inet_atocc($host);

Looks up the country code of host $host. $host can either be an IPv4 address in dotted quad notation or a hostname.

If successful, returns the country code. In most cases this is an ISO-3166-1 alpha-2 country code, but there are also generic codes like "EU" for Europe or "AP" for Asia/Pacific. All country codes consist of two uppercase letters.

Returns "**" for private IP addresses.

Returns undef if there's no country code listed for the IP address, the DNS lookup fails, or the host string is invalid.

  inet_ntocc
    my $cc = $ipcc->inet_ntocc($packed_address);

Like inet_atocc but works with a packed IPv4 address.

  inet6_atocc
    my $cc = $ipcc->inet6_atocc($host);

Like inet_atocc but works with IPv6 addresses or hosts.

  inet6_ntocc
    my $cc = $ipcc->inet6_ntocc($packed_address);

Like inet_ntocc but works with a packed IPv6 address.

  db_time
    my $time = $ipcc->db_time();

Returns the mtime of the DB file.

SEE ALSO
IP::Country, IP::Country::DB_File::Builder

AUTHOR
Nick Wellnhofer <wellnhofer@aevum.de>

COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Nick Wellnhofer.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.