#! /usr/bin/perl -w
use IO::Socket;
use Data::Dumper::Simple;
use IO::Interface qw(:flags);
my $s = IO::Socket::INET->new(Proto => 'udp');
@interfaces = $s->if_list;
print Dumper @interfaces;
for my $if (@interfaces) {
next if $if =~ /usb|iwn|lo/;
print "interface = $if\n";
print "addr = ",$if->addrese,"\n",
"broadcast = ",$if->broadcast,"\n",
"netmask = ",$if->netmask,"\n",
"dstaddr = ",$if->dstaddr,"\n",
"hwaddr = ",$if->hwaddr,"\n",
"mtu = ",$if->mtu,"\n",
"metric = ",$if->metric,"\n",
"index = ",$if->index,"\n";
print "is running\n" if $if->is_running;
print "is broadcast\n" if $if->is_broadcast;
print "is p-to-p\n" if $if->is_pt2pt;
print "is loopback\n" if $if->is_loopback;
print "is promiscuous\n" if $if->is_promiscuous;
print "is multicast\n" if $if->is_multicast;
print "is notrailers\n" if $if->is_notrailers;
print "is noarp\n" if $if->is_noarp;
}
####
@interfaces = (
'iwn0',
'lo0',
're0',
'usbus0',
'usbus1',
'usbus2',
'usbus3',
'usbus4',
'usbus5',
'usbus6',
'usbus7'
);
interface = re0
Can't locate object method "addrese" via package "re0" (perhaps you forgot to load "re0"?) at interfaces.pl line 25.
####
re0: flags=8843 metric 0 mtu 1500
options=8209b
ether c8:0a:a9:93:87:25
inet 172.21.100.29 netmask 0xffffff00 broadcast 172.21.100.255
inet 192.168.1.5 netmask 0xffffffff broadcast 192.168.1.5
nd6 options=29
media: Ethernet autoselect (100baseTX )
status: active