sub addrtoint { return( unpack( "N", pack( "C4", split( /[.]/,$_[0] ) ) ) ) }; sub inttoaddr { return( join( ".", unpack( "C4", pack( "N", $_[0] ) ) ) ) }; my $netwval = addrtoint( '192.168.10.2' ) & addrtoint( '255.255.254.0' ); my $brodval = $netwval | ( ~addrtoint( '255.255.254.0' ) ); print( inttoaddr( $netwval ) . "\n" ); print( inttoaddr( $brodval ) . "\n" );