blob: 80f0b0c2a68b10673d408cc01a655f75a8335d84 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#!/usr/bin/perl
use warnings;
use strict;
while (<>) {
chomp;
s/#.*$//;
s/^\s+//; s/\s+$//;
next if /^$/;
die "format error:\n$_\n"
if not m#^([\da-fA-F]{4}):([\da-fA-F]{1,4})::/(\d+)\s+([\w\.]+)$#;
my $len = $3; my $s = $4;
my $i1 = $1; my $i2 = $2;
my $net = (hex($i1) << 16) + hex $i2;
if (0) { # just some code to help me visually aggregate networks
my $bs = unpack('B32', pack('N', $net));
$bs =~ s/(.{8})/$1 /g;
print "${i1}:${i2}::/$len\t$bs $s\n";
next;
}
print qq|{ ${net}UL, $len, "|;
if ($s =~ /\./) {
print $s;
} elsif ($s eq '6to4') {
print "\\x0A";
} elsif ($s eq 'teredo') {
print "\\x0B";
} elsif ($s eq 'UNALLOCATED') {
print "\\006";
} else {
print $s =~ /\./ ? $s : "whois.$s.net";
}
print qq|" },\n|;
}
|