1) Основная идея:
Чтобы определить, находятся ли два IP-адреса в одном сегменте сети, выполните операцию «И» для их IP-адресов и масок подсети соответственно. Полученный результат — это номер сети. Если номера сетей совпадают, в противном случае они находятся в одной подсети. , они не находятся в одной подсети.
2) Конкретная реализация:
Скопируйте код кода следующим образом:
/**
* [isEqualIPAddress определяет, находятся ли два IP-адреса в одном сегменте сети]
* @param {[String]} addr1 [первый адрес]
* @param {[String]} addr2 [адрес два]
* @param {[String]} маска [маска подсети]
* @return {Boolean} [истина или ложь]
*/
функция isEqualIPAddress (адрес1, адрес2, маска) {
if(!addr1 || !addr2 || !mask){
console.log("Каждый параметр не может быть пустым");
вернуть ложь;
}
вар
рез1 = [],
рез2 = [];
адрес1 = адрес1.split(".");
адрес2 = адрес2.split(".");
маска = маска.split(".");
for(var i = 0,ilen = addr1.length; i <ilen; i += 1){
res1.push(parseInt(addr1[i]) & parseInt(маска[i]));
res2.push(parseInt(addr2[i]) и parseInt(маска[i]));
}
if(res1.join(".") == res2.join(".")){
console.log("В том же сегменте сети");
вернуть истину;
}еще{
console.log("Не в том же сегменте сети");
вернуть ложь;
}
}