public
Description: A rigorous set of firewall scripts for BSD ipfw, and Linux iptables
Homepage:
Clone URL: git://github.com/jwiegley/jw.firewall.git
jw.firewall / interfaces
100755 36 lines (28 sloc) 0.567 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/perl
 
my $pif = $ARGV[0];
if ($pif) {
  print "$pif ";
}
 
open(CONFIG, "ifconfig -a -u inet 2> /dev/null |")
  || die "Couldn't run ifconfig";
 
my $intf = 0;
my $addr;
my $bcast;
 
while (<CONFIG>) {
  if (/^((en|tap|tun)[0-9]):/) {
    if ($1 ne $pif) {
      $intf = $1;
    } else {
      $intf = 0;
    }
  }
  elsif ($intf and /inet (\S+) .* broadcast (\S+)/) {
    $addr = $1;
    @bcast = map { $_ == 255 ? 0 : 255 } split '\\.', $2;
    $bcast = join '.', @bcast;
 
    print "$intf\@$addr:$bcast ";
 
    $intf = 0;
  }
}
print "\n";
 
close(CONFIG);