package Pfacter::ipaddress; # sub pfact { my $self = shift; my ( $p ) = shift->{'pfact'}; my ( $r ); for ( $p->{'kernel'} ) { /AIX|Darwin|FreeBSD|SunOS/ && do { my ( $c ); $c = '/etc/ifconfig -a |' if -e '/etc/ifconfig'; $c = '/sbin/ifconfig -a |' if -e '/sbin/ifconfig'; if ( $c ) { open( F, $c ); my ( @F ) = ; close( F ); my ( $d, @i ); foreach ( @F ) { $d = $1 if /^(\w+)\:/; push @i, "$d=$1" if /inet\s+(\d+\.\d+\.\d+\.\d+)/; }; $r = join ' ', sort @i; } }; /Linux/ && do { if ( -e '/sbin/ifconfig' ) { open( F, '/sbin/ifconfig -a |' ); my ( @F ) = ; close( F ); my ( $d, @i ); foreach ( @F ) { $d = $1 if ( /^(\w+)\s+/ || /^(\w+:\d+)\s+/ ); push @i, "$d=$1" if /inet addr:(\d+\.\d+\.\d+\.\d+)/; } $r = join ' ', sort @i; } }; if ( $r ) { return( $r ); } else { return( 0 ); } } } 1;