network icon indicating copy to clipboard operation
network copied to clipboard

Return broadcast ip

Open GaryFunk opened this issue 7 years ago • 0 comments

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 ); }

GaryFunk avatar Apr 15 '18 22:04 GaryFunk