diff options
-rw-r--r-- | tools/v6-netlist-from-v4.pl | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tools/v6-netlist-from-v4.pl b/tools/v6-netlist-from-v4.pl new file mode 100644 index 0000000..ea79268 --- /dev/null +++ b/tools/v6-netlist-from-v4.pl @@ -0,0 +1,33 @@ +#! /usr/bin/perl +use strict; +use warnings; + +while (<>) { + chomp; + /^#/ and next; + /^(151\.216\.(\d+)\.(\d+)) (\d+) (\S+)$/ or die; + my $z; + my ($ip, $third, $fourth, $len, $name) = ($1, $2, $3, $4, $5); + if ($len == 24) { + $z = '2a02:ed02:' . $third . '::/64'; + } elsif ($len == 25) { + if ($fourth == 0) { + $z = '2a02:ed02:' . $third . 'a::/64'; + } else { + $z = '2a02:ed02:' . $third . 'b::/64'; + } + } elsif ($len == 26) { + if ($fourth == 0) { + $z = '2a02:ed02:' . $third . 'a::/64'; + } elsif ($fourth == 64) { + $z = '2a02:ed02:' . $third . 'b::/64'; + } elsif ($fourth == 128) { + $z = '2a02:ed02:' . $third . 'c::/64'; + } else { + $z = '2a02:ed02:' . $third . 'd::/64'; + } + } else { + warn "Unknown len $ip/$len"; + } + print "$z $name\n" if (defined($z)); +} |