NAME

Net::Magallanes - encapsulation of API calls to RIPE Atlas project.

SYNOPSIS

use Net::Magallanes;

my $atlas = new Net::Magallanes (
    KEY => '<YOUR_API_KEY>'
);

my $msm_id = $atlas->dns(
    name    =>  'www.vulcano.cl',
    type    =>  'A',
);

# Wait for RIPE Atlas to complete
sleep(120);

my @result = $atlas->answers($msm_id, 'A');
print "Result is ", join ',', @result;

DESCRIPTION

Net::Magallanes is a pure perl interface to the RIPE Atlas API, for requesting measurements and getting data from past measurements.

More information on RIPE Atlas platform: atlas.ripe.net

*WARNING*: This module is a "work in progress". By no means does it allow full API handling. Functionality will be added as needed. It is currently a minimal implementation, which works for the cases indicated in the documentation.

DESCRIPTION

Net::Magallanes is a pure perl interface to the RIPE Atlas API, for requesting measurements and getting data from past measurements.

More information on RIPE Atlas platform: atlas.ripe.net

METHODS

new

Creates a new Net::Magallanes object. There're two optional parameters:

KEY => '<Secret API Key for RIPE Atlas>'

If you want to create new measurements, you must provide an API key for your RIPE Atlas account.

INFILES => '<path/filename>[,<morefiles>]'

If you want to use an existing JSON file with a previous measurement, instead of downloading one from Atlas API site. You can use more than one file, comma separated.

answers(<MSM-id> [, <qtype>])

Get an array of answers from the previous measurement with id MSM-id. The "answers" are the records from the ANSWER section of a DNS measurement.

If you specify a qtype 'A' (default) or 'AAAA', you'll get an array of addresses from the corresponding answer. With other types you'll get an array with a printable representation of each answer.

nsids(<MSM-id>)

Get an array of NSID texts from the results of a previous measurement MSM-id.

If there's no NSID for a result, you'll get a 'NULL' string.

rcodes

Get an array of RCODE texts from the results of a previous measurement MSM-id.

dns( name => '<QNAME>' [, type => '<QTYPE>'] [, num_prb => '<NUM_PROBES'> ])

Create a new "one-off" DNS measurement, asking for the name <QNAME> (required) and type <QTYPE> (AAAA default), from <NUM_PROBES> (default 5) probes at random, with worldwide coverage.

You must had initialized the Net::Magallanes object with a valid API key, with enough permissions and credits for measurement creation.

Return the measurement id assignated by Atlas platform.

You should take care for waiting enough time (5~6 minutes) before asking for the results of this measurement.

The measurement uses sensible parameters like DO bit set, 1232 EDNS buffer size, recursive towards the probe resolver, etc.

AUTHOR

Hugo Salgado <hsalgado@vulcano.cl>

COPYRIGHT

Copyright 2021- Hugo Salgado

LICENSE

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