summaryrefslogtreecommitdiffstats
path: root/make_ip6_del.pl
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-05 15:45:37 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-05 15:45:37 +0000
commite0801e6bd6cc1241afafea33ba8ef701fec2e5c5 (patch)
treeb5cf84f45181b3dbc14d58833d88683fb7f3465e /make_ip6_del.pl
parentInitial commit. (diff)
downloadwhois-e0801e6bd6cc1241afafea33ba8ef701fec2e5c5.tar.xz
whois-e0801e6bd6cc1241afafea33ba8ef701fec2e5c5.zip
Adding upstream version 5.5.17.upstream/5.5.17upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'make_ip6_del.pl')
-rwxr-xr-xmake_ip6_del.pl39
1 files changed, 39 insertions, 0 deletions
diff --git a/make_ip6_del.pl b/make_ip6_del.pl
new file mode 100755
index 0000000..80f0b0c
--- /dev/null
+++ b/make_ip6_del.pl
@@ -0,0 +1,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|;
+}
+