NAME

IP::Geolocation::MMDB::Metadata - Metadata from a MaxMind DB file

VERSION

version 1.004

SYNOPSIS

use IP::Geolocation::MMDB;
my $db = IP::Geolocation::MMDB->new(file => 'City.mmdb');
my $metadata = $db->metadata;

DESCRIPTION

A class for metadata from a MaxMind DB file.

SUBROUTINES/METHODS

new

my $metadata = IP::Geolocation::MMDB::Metadata->new(
  binary_format_major_version => 2,
  binary_format_minor_version => 0,
  build_epoch   => time,
  database_type => 'City',
  languages     => [qw(en fr pt-BR)],
  description   => {
    en => 'IP to city',
    fr => 'IP vers ville',
  },
  ip_version    => 6,
  node_count    => 3829268,
  record_size   => 28,
);

Returns a new metadata object.

binary_format_major_version

my $major_version = $metadata->binary_format_major_version;

Returns the database format's major version number.

binary_format_minor_version

my $minor_version = $metadata->binary_format_minor_version;

Returns the database format's minor version number.

build_epoch

my $t = gmtime $metadata->build_epoch;

Returns the database's build timestamp as an epoch number.

database_type

my $database_type = $metadata->database_type;

Returns a free-form string indicating the database type.

languages

for my $language (@{$metadata->languages}) {
  say $language;
}

Returns a reference to an array of locale codes indicating what languages this database has information for.

description

my %description_for = %{$metadata->description};
for my $language (keys %description_for) {
  my $description = $description_for{$language};
  say "$language: $description";
}

Returns a reference to a hash that maps locale codes to strings that describe the database content.

ip_version

my $ip_version = $metadata->ip_version;

Returns 4 or 6.

node_count

my $node_count = $metadata->node_count;

Returns the number of nodes in the database's search tree.

record_size

my $record_size = $metadata->record_size;

Returns the record size for nodes in the database's search tree.

DIAGNOSTICS

None.

CONFIGURATION AND ENVIRONMENT

None.

DEPENDENCIES

None.

INCOMPATIBILITIES

None.

SEE ALSO

IP::Geolocation::MMDB

AUTHOR

Andreas Vögele <voegelas@cpan.org>

BUGS AND LIMITATIONS

None known.

LICENSE AND COPYRIGHT

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.