Net-RDAP

 view release on metacpan or  search on metacpan

lib/Net/RDAP.pm  view on Meta::CPAN

use Net::RDAP::Object::Domain;
use Net::RDAP::Object::Entity;
use Net::RDAP::Object::IPNetwork;
use Net::RDAP::Object::Nameserver;
use Net::RDAP::Redaction;
use Net::RDAP::Registry;
use Net::RDAP::SearchResult;
use Net::RDAP::Service;
use Net::RDAP::Values;
use Net::RDAP::JCard;
use POSIX qw(getpwuid);
use vars qw($VERSION);
use constant DEFAULT_CACHE_TTL => 3600;
use strict;
use warnings;

$VERSION = '0.38';

=pod

=encoding UTF-8

lib/Net/RDAP.pm  view on Meta::CPAN

    # path to local copy of the remote resource
    #
    my $file = File::Spec->catfile(
        File::Spec->tmpdir,
        sprintf(
            '%s-%s.json',
            ref($self),
            sha256_hex(join(chr(0), (
                $VERSION,
                $url->as_string,
                getpwuid($<)
            )))
        )
    );

    #
    # untaint file
    #
    if ($file =~ /(.+)/) {
        $file = $1;
    }

lib/Net/RDAP/Registry.pm  view on Meta::CPAN

package Net::RDAP::Registry;
use Carp qw(croak);
use File::Basename qw(basename);
use File::Slurp;
use File::Spec;
use File::stat;
use JSON;
use POSIX qw(getpwuid);
use Net::RDAP::UA;
use Net::RDAP::Registry::IANARegistry;
use vars qw($UA $REGISTRY);
use constant {
    IP4_URL             => 'https://data.iana.org/rdap/ipv4.json',
    IP6_URL             => 'https://data.iana.org/rdap/ipv6.json',
    DNS_URL             => 'https://data.iana.org/rdap/dns.json',
    ASN_URL             => 'https://data.iana.org/rdap/asn.json',
    TAG_URL             => 'https://data.iana.org/rdap/object-tags.json',
    CACHE_TTL           => 86400,

lib/Net/RDAP/Registry.pm  view on Meta::CPAN

    my ($package, $url) = @_;

    if (!defined($REGISTRY->{$url})) {
        $package =~ s/:+/-/g;

        my $file = sprintf(
            '%s/%s-%s-%s',
            File::Spec->tmpdir,
            $package,
            basename($url),
            getpwuid($<),
        );

        #
        # $UA may have been injected by Net::RDAP->ua()
        #
        $UA = Net::RDAP::UA->new unless(defined($UA));

        $UA->mirror($url, $file, CACHE_TTL);

        $REGISTRY->{$url} = Net::RDAP::Registry::IANARegistry->new(from_json(read_file($file))) if (-e $file);



( run in 0.369 second using v1.01-cache-2.11-cpan-8d75d55dd25 )