1) Idée de base :
Pour déterminer si deux adresses IP se trouvent dans le même segment de réseau, effectuez une opération ET sur leurs adresses IP et leurs masques de sous-réseau respectivement. Le résultat obtenu est le numéro de réseau. Si les numéros de réseau sont identiques, ils sont dans le même sous-réseau. , ils ne sont pas dans le même sous-réseau.
2) Mise en œuvre spécifique :
Copiez le code comme suit :
/**
* [isEqualIPAddress détermine si deux adresses IP se trouvent sur le même segment de réseau]
* @param {[String]} addr1 [adresse 1]
* @param {[String]} addr2 [adresse deux]
* @param {[String]} masque [masque de sous-réseau]
* @return {Booléen} [vrai ou faux]
*/
fonction isEqualIPAddress (addr1,addr2,mask){
si(!addr1 || !addr2 || !mask){
console.log("Chaque paramètre ne peut pas être vide");
renvoie faux ;
}
var
res1 = [],
res2 = [];
addr1 = addr1.split(".");
addr2 = addr2.split(".");
masque = masque.split(".");
pour(var je = 0,ilen = addr1.length; je < ilen ; je += 1){
res1.push(parseInt(addr1[i]) & parseInt(mask[i]));
res2.push(parseInt(addr2[i]) & parseInt(mask[i]));
}
if(res1.join(".") == res2.join(".")){
console.log("Sur le même segment de réseau");
renvoie vrai ;
}autre{
console.log("Pas dans le même segment de réseau");
renvoie faux ;
}
}