Return broadcast ip
Could you add the broadcast IP to the return information for active_interface?
Here is some not so pretty code that I found and modified.
function IPv4_Address( addressDotQuad, netmaskDotQuad ) { var addressInteger = IPv4_dotquad_to_int( addressDotQuad.toString() ); var addressBinStr = IPv4_int_to_binstr( addressInteger );
var netmaskInteger = IPv4_dotquad_to_int( netmaskDotQuad.toString() );
var netmaskBinStr = IPv4_int_to_binstr( netmaskInteger );
var netbcastBinStr = IPv4_calc_netbcastBinStr( addressBinStr, netmaskBinStr );
var netbcastInteger = IPv4_binstr_to_int( netbcastBinStr );
return IPv4_int_to_dotquad( netbcastInteger );
}
/* dotted-quad IP to integer / function IPv4_dotquad_to_int( strbits ) { var split = strbits.split( '.', 4 ); var myInt = ( parseFloat( split[0] * 16777216 ) / 2^24 / + parseFloat( split[1] * 65536 ) / 2^16 / + parseFloat( split[2] * 256 ) / 2^8 */ + parseFloat( split[3] ) ); return myInt; }
/* integer IP to binary string representation / function IPv4_int_to_binstr( strnum ) { var numStr = strnum.toString( 2 ); / Initialize return value as string / var numZeros = 32 - numStr.length; / Calculate no. of zeros */ if (numZeros > 0) { for (var i = 1; i <= numZeros; i++) { numStr = "0" + numStr } } return numStr; }
/* logical OR between address & NOT netmask / function IPv4_calc_netbcastBinStr( addressBinStr, netmaskBinStr ) { var netbcastBinStr = ''; var aBit = 0; var nmBit = 0; for( pos = 0; pos < 32; pos ++ ) { aBit = parseInt( addressBinStr.substr( pos, 1 )); nmBit = parseInt( netmaskBinStr.substr( pos, 1 )); if( nmBit ) { nmBit = 0; / flip netmask bits */ } else { nmBit = 1; } if( aBit || nmBit ) { netbcastBinStr += '1'; } else { netbcastBinStr += '0'; } } return netbcastBinStr; }
/* binary string IP to integer representation */ function IPv4_binstr_to_int( binstr ) { return parseInt( binstr, 2 ); }
/* integer IP to dotted-quad */ function IPv4_int_to_dotquad( strnum ) { var byte1 = ( strnum >>> 24 ); var byte2 = ( strnum >>> 16 ) & 255; var byte3 = ( strnum >>> 8 ) & 255; var byte4 = strnum & 255; return ( byte1 + '.' + byte2 + '.' + byte3 + '.' + byte4 ); }