aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorroot <root@frank.tg14.gathering.org>2014-04-20 01:36:50 +0200
committerroot <root@frank.tg14.gathering.org>2014-04-20 01:36:50 +0200
commit65f98b040aaff35202fa1e79c4f74fcdaf09329f (patch)
tree58be95ad495e41cd4d543de4af18ef9acdb762ac
parent4327c9ffeb0926944e4c8a1f0bd31e4eb531c198 (diff)
Add a script to make IPv6 nets from the IPv4 netlist.
-rw-r--r--tools/v6-netlist-from-v4.pl33
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));
+}