On 2013-03-20 at 11:55 +0100, DTNX Postmaster wrote:
> I've looked up quite a few now, and they are all Crystone ranges,
> belonging to their various European subsidiaries. There doesn't seem to
> be an easy way to show all IP ranges belonging to 'CR422-RIPE', but
> that could very well be a lack of understanding on my part.
Given a "ripe" command that boils down to:
whois -h whois.ripe.net -- "$*"
(and the $* not $@ is deliberate), you want:
ripe -K -T inetnum,inet6num -i admin-c CR422-RIPE
So, primary keys only (not the details), for network blocks (not route
objects, etc etc), with an inverse query, searching where the admin-c
field is CR422-RIPE.
I'd post the results inline, but don't want to even risk dealing with
people arguing I've violated T&C or somesuch.
They have 283 inetnum blocks, 0 inet6num blocks. A lot of these are
disaggregated. Some are not exact netblocks.
% sed -n 's/^inetnum: *//p' < cr422 | \
perl -MNet::Netmask -ne 'BEGIN { @all = () };
die "unhandled line: $_" unless /^([0-9.]+)\s+-\s+([0-9.]+)$/;
push @all, range2cidrlist($1, $2);
END { foreach (cidrs2cidrs(@all)) { print "$_\n" } }' | wc -l
201
"cr422" is the raw output from the query command above.
-Phil
My example
#whois -h whois.ripe.net -- "$*" ripe -K -T inetnum,inet6num -i admin-c CR422-RIPE > cr422
#sed -n 's/^inetnum: *//p' < cr422 | perl -MNet::Netmask -ne 'BEGIN { @all = () }; die "unhandled line: $_" unless /^([0-9.]+)\s+-\s+([0-9.]+)$/; push @all, range2cidrlist($1, $2); END { foreach (cidrs2cidrs(@all)) { print "$_\n" } }'