IP::Geolocation::MMDB - Read MaxMind DB files
version 0.007
use IP::Geolocation::MMDB; my $db = IP::Geolocation::MMDB->new(file => 'GeoIP2-Country.mmdb'); my $metadata = $db->metadata; my $lookup_result = $db->record_for_address('1.2.3.4'); my $country_code = $db->getcc('2620:fe::9');
A Perl module that reads MaxMind DB files and maps IP addresses to two-letter country codes such as "DE", "FR" and "US".
my $db = IP::Geolocation::MMDB->new(file => 'GeoIP2-Country.mmdb');
Returns a new database object. Dies if the specified file cannot be read.
my $country_code = $db->getcc($ip_address);
Takes an IPv4 or IPv6 address as a string and returns a two-letter country code or the undefined value. Dies if the address is not a valid IP address.
my $lookup_result = $db->record_for_address($ip_address);
Takes an IPv4 or IPv6 address as a string and returns the data associated with the IP address or the undefined value. Dies if the address is not a valid IP address.
The returned data is usually a hash reference but could also be a an array reference or a scalar for custom databases.
my $metadata = $db->metadata;
Returns an IP::Geolocation::MMDB::Metadata object for the database.
my $version = IP::Geolocation::MMDB->version;
Returns the libmaxminddb version.
The database file could not be read.
A string did not contain a valid IP address.
A database error occurred while looking up an IP address.
A database error occurred while reading the data associated with an IP address.
An error occurred while reading the database's metadata.
None.
Requires Alien::libmaxminddb from CPAN. On Windows, Alien::MSYS needs to be installed. Requires Math::BigInt version 1.999807, which is distributed with Perl 5.28 and newer.
Requires an IP to country database in the MaxMind DB file format from DP-IP.com or MaxMind.
Andreas Vögele <voegelas@cpan.org>
If your Perl interpreter does not support 64-bit integers, MMDB_DATA_TYPE_UINT64 values are put into Math::BigInt objects;
MMDB_DATA_TYPE_UINT128 values are put into Math::BigInt objects;
Some Windows versions do not support IPv6.
Copyright 2022 Andreas Vögele
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install IP::Geolocation::MMDB, copy and paste the appropriate command in to your terminal.
cpanm
cpanm IP::Geolocation::MMDB
CPAN shell
perl -MCPAN -e shell install IP::Geolocation::MMDB
For more information on module installation, please visit the detailed CPAN module installation guide.