diff options
author | root <root@frank.tg14.gathering.org> | 2014-04-20 01:36:50 +0200 |
---|---|---|
committer | root <root@frank.tg14.gathering.org> | 2014-04-20 01:36:50 +0200 |
commit | 65f98b040aaff35202fa1e79c4f74fcdaf09329f (patch) | |
tree | 58be95ad495e41cd4d543de4af18ef9acdb762ac | |
parent | 4327c9ffeb0926944e4c8a1f0bd31e4eb531c198 (diff) |
Add a script to make IPv6 nets from the IPv4 netlist.
-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)); +} |