AWS-Networks
view release on metacpan or search on metacpan
bin/aws_ips_for_service view on Meta::CPAN
#!/usr/bin/env perl
use AWS::Networks;
use Net::CIDR::Set;
my $service = $ARGV[0] or die "Usage $0 AMAZON|CLOUDFRONT|...|ROUTE53\n";
my $nets = AWS::Networks->new;
my $cidrs = $nets->by_service(uc($service))->cidrs;
my $set = Net::CIDR::Set->new(@$cidrs);
my $count = 0;
my $iter = $set->iterate_cidr;
while ( my $cidr = $iter->() ) {
my ($net, $bits) = split /\//, $cidr;
if ($bits == 32) {
$count += 1;
} elsif ($bits == 31) {
$count += 2;
} else {
$count += (( 2 ** (32 - $bits) ) - 2);
}
}
print "AWS has $count IP Addresses\n";
( run in 0.855 second using v1.01-cache-2.11-cpan-39bf76dae61 )