对象IP地址= 192.168.0.101
掩码IP地址= 255.255.255.0
network =?
broadcast =?
答案 0 :(得分:0)
var network = calculateNetworkIP("192.168.0.101", "255.255.255.0");
var broadcast = calculateBroadcastIP("192.168.0.101", "255.255.255.0");
function calculateNetworkIP(ipAddress, maskIP){
var binaryIP = convertIPToBinaryIP(ipAddress);
var maskBinaryIP = convertIPToBinaryIP(maskIP);
var binaryNetwork = [];
for (var j = 0; j < maskBinaryIP.length; j++) {
binaryNetwork.push(bitwiseAND(binaryIP[j], maskBinaryIP[j]));
}
var NetworkIPArr = convertBinaryIPToDecIP(binaryNetwork);
var NetworkIPStr = "";
for (var k = 0; k < NetworkIPArr.length; k++) {
NetworkIPStr += NetworkIPArr[k]+".";
}
return NetworkIPStr.slice(0, -1);
}
function calculateBroadcastIP(ipAddress, maskIP){
var binaryIP = convertIPToBinaryIP(ipAddress);
var maskBinaryIP = convertIPToBinaryIP(maskIP);
var invertedMark = [];
for (var i = 0; i < maskBinaryIP.length; i++) {
invertedMark.push(invertedBinary(maskBinaryIP[i]));
}
var binaryBroadcast = [];
for (var j = 0; j < maskBinaryIP.length; j++) {
binaryBroadcast.push(bitwiseOR(binaryIP[j], invertedMark[j]));
}
var broadcastIPArr = convertBinaryIPToDecIP(binaryBroadcast);
var broadcastIPStr = "";
for (var k = 0; k < broadcastIPArr.length; k++) {
broadcastIPStr += broadcastIPArr[k]+".";
}
return broadcastIPStr.slice(0, -1);
}
function invertedBinary(number){
var no = number+"";
var noArr = no.split("");
var newNo = "";
for(var i = 0; i < noArr.length; i++){
if(noArr[i] == "0"){
newNo += "1";
}else{
newNo += "0";
}
}
return newNo;
}
function bitwiseAND(firstBinary, secondBinary){
var firstArr = [];
var secondArr = [];
firstArr = firstBinary.split("");
secondArr = secondBinary.split("");
var newAdded = "";
for(var i = 0; i < firstArr.length; i++){
if(firstArr[i]+"+"+secondArr[i] == "1+0"){
newAdded += "0";
}else if(firstArr[i]+"+"+secondArr[i] == "0+1"){
newAdded += "0";
}else if(firstArr[i]+"+"+secondArr[i] == "1+1"){
newAdded += "1";
}else if(firstArr[i]+"+"+secondArr[i] == "0+0"){
newAdded += "0";
}
}
return newAdded;
}
function bitwiseOR(firstBinary, secondBinary){
var firstArr = [];
var secondArr = [];
firstArr = firstBinary.split("");
secondArr = secondBinary.split("");
var newAdded = "";
for(var i = 0; i < firstArr.length; i++){
if(firstArr[i]+"+"+secondArr[i] == "1+0"){
newAdded += "1";
}else if(firstArr[i]+"+"+secondArr[i] == "0+1"){
newAdded += "1";
}else if(firstArr[i]+"+"+secondArr[i] == "1+1"){
newAdded += "1";
}else if(firstArr[i]+"+"+secondArr[i] == "0+0"){
newAdded += "0";
}
}
return newAdded;
}
function convertBinaryIPToDecIP(binaryIPArr){
var broadcastIP = [];
for (var i = 0; i < binaryIPArr.length; i++) {
broadcastIP.push(parseInt(parseInt(binaryIPArr[i]), 2));
}
return broadcastIP;
}
function convertIPToBinaryIP(ipAddress) {
var ipArr = ipAddress.split(".");
var binaryIP = [];
for (var i = 0; i < ipArr.length; i++) {
var binaryNo = parseInt(ipArr[i]).toString(2);
if(binaryNo.length == 8){
binaryIP.push(binaryNo);
}else{
var diffNo = 8 - binaryNo.length;
var createBinary = '';
for (var j = 0; j < diffNo; j++) {
createBinary += '0';
}
createBinary += binaryNo;
binaryIP.push(createBinary);
}
}
return binaryIP;
}