#!/usr/bin/perl -- -*-CPerl-*- use strict; $::Prog = "ifdown-all"; ## @ifs = ifs_up() ## -- Returns list of eth/wlan interfaces currently up sub ifs_up { my (@lines); ## See if any eth interfaces are already up @lines = `/bin/netstat -i`; @lines = (map (($_ =~ /^(eth\d+)\s+/) ? $1 : (), @lines), map (($_ =~ /^(wlan\d+)\s+/) ? $1 : (), @lines)); return (@lines); }; sub main { my ($if, @ifs); ($> == 0) || die ("Must run $::Prog as root\n"); @ifs = ifs_up(); foreach $if (@ifs) { system ("/sbin/ifdown", $if); }; }; main();