summaryrefslogtreecommitdiff
path: root/make_ip6_del.pl
diff options
context:
space:
mode:
authorMarco d'Itri <md@linux.it>2005-01-30 13:51:30 +0100
committerMarco d'Itri <md@linux.it>2013-03-30 02:31:31 +0100
commitc30d63196924e6f5d42a11bbbd545e11c379fb4b (patch)
treedbea38919dc135af32cc8abf7ffd32f3f56680cb /make_ip6_del.pl
parent58afbcd036c29483acfc91a94830c09365b151af (diff)
downloadwhois-c30d63196924e6f5d42a11bbbd545e11c379fb4b.tar.gz
Imported Debian version 4.7.0v4.7.0
Diffstat (limited to 'make_ip6_del.pl')
-rwxr-xr-xmake_ip6_del.pl36
1 files changed, 36 insertions, 0 deletions
diff --git a/make_ip6_del.pl b/make_ip6_del.pl
new file mode 100755
index 0000000..94b85b8
--- /dev/null
+++ b/make_ip6_del.pl
@@ -0,0 +1,36 @@
+#!/usr/bin/perl -w
+
+use strict;
+
+while (<>) {
+ chomp;
+ s/^\s*(.*)\s*$/$1/;
+ s/\s*#.*$//;
+ next if /^$/;
+
+ die "invalid line:\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 'UNALLOCATED') {
+ print "\\006";
+ } else {
+ print $s =~ /\./ ? $s : "whois.$s.net";
+ }
+ print qq|" },\n|;
+}
+