diff options
Diffstat (limited to 'SunOS4/mkroutes')
-rwxr-xr-x | SunOS4/mkroutes | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/SunOS4/mkroutes b/SunOS4/mkroutes new file mode 100755 index 0000000000000..bdcf25800e229 --- /dev/null +++ b/SunOS4/mkroutes @@ -0,0 +1,35 @@ +#!/usr/local/bin/perl +# for best results, bring up all your interfaces before running this +open(I, "ifconfig -a|") || die $!; +while (<I>) { + chop; + if (/^[a-zA-Z]+\d+:/) { + ($iface = $_) =~ s/^([a-zA-Z]+\d+).*/$1/; + $ifaces{$iface} = $iface; + next; + } + if (/inet/) { + if (/\-\-\>/) { # PPP, (SLIP?) + ($inet{$iface} = $_) =~ s/.*inet ([^ ]+) \-\-\> ([^ ]+).*/$1/; + ($ppp{$iface} = $_) =~ s/.*inet ([^ ]+) \-\-\> ([^ ]+).*/$2/; + } else { + ($inet{$iface} = $_) =~ s/.*inet ([^ ]+).*/$1/; + } + } + if (/netmask/) { + ($mask = $_) =~ s/.*netmask ([^ ]+).*/$1/; + $mask =~ s/^/0x/ if ($mask =~ /^[0-9a-f]*$/); + $netmask{$iface} = $mask; + } + if (/broadcast/) { + ($bcast{$iface} = $_) =~ s/.*broadcast ([^ ]+).*/$1/; + } +} +foreach $i (keys %ifaces) { + $net{$i} = $inet{$i}."/".$netmask{$i} if (defined($inet{$i})); +} +foreach $i (keys %ifaces) { + next if (($i =~ /lo/) || !defined($net{$i})); +# 8/25/97; removed || defined($ppp{$i}) + system("route add $inet{$i} localhost 0"); +} |