1) الفكرة الأساسية:
لتحديد ما إذا كان عنواني IP موجودين في نفس مقطع الشبكة، قم بإجراء عملية AND على عناوين IP وأقنعة الشبكة الفرعية الخاصة بهم على التوالي، وتكون النتيجة هي رقم الشبكة، وإذا كانت أرقام الشبكة متماثلة، فهي موجودة في نفس الشبكة الفرعية ، فهي ليست في نفس الشبكة الفرعية.
2) التنفيذ المحدد:
انسخ رمز الكود كما يلي:
/**
* [يحدد isEqualIPAddress ما إذا كان عنواني IP موجودان على نفس مقطع الشبكة]
*param {[سلسلة]} addr1 [العنوان الأول]
*param {[سلسلة]} addr2 [العنوان الثاني]
* @param {[سلسلة]} قناع [قناع الشبكة الفرعية]
*return {منطقية} [صواب أو خطأ]
*/
الدالة هيEqualIPAddress (addr1,addr2,mask){
إذا (!addr1 || !addr2 || !قناع){
console.log("لا يمكن أن تكون كل معلمة فارغة");
عودة كاذبة.
}
فار
الدقة1 = []،
res2 = [];
addr1 = addr1.split(".");
addr2 = addr2.split(".");
قناع = قناع.سبليت(".");
for(var i = 0,ilen = addr1.length; i < ilen ; i += 1){
res1.push(parseInt(addr1[i]) & parseInt(mask[i]));
res2.push(parseInt(addr2[i]) & parseInt(mask[i]));
}
إذا (res1.join(".") == res2.join(".")){
console.log("في نفس مقطع الشبكة");
عودة صحيحة؛
}آخر{
console.log("ليس في نفس مقطع الشبكة");
عودة كاذبة.
}
}