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 )