1) แนวคิดพื้นฐาน:
หากต้องการตรวจสอบว่าที่อยู่ IP สองตัวอยู่ในส่วนเครือข่ายเดียวกันหรือไม่ ให้ดำเนินการ AND กับที่อยู่ IP และซับเน็ตมาสก์ตามลำดับ ผลลัพธ์ที่ได้คือหมายเลขเครือข่ายหากหมายเลขเครือข่ายเหมือนกัน แสดงว่าอยู่ในเครือข่ายย่อยเดียวกัน ไม่ได้อยู่ในเครือข่ายย่อยเดียวกัน
2) การดำเนินการเฉพาะ:
คัดลอกรหัสรหัสดังต่อไปนี้:
-
* [isEqualIPAddress กำหนดว่าที่อยู่ IP สองรายการอยู่ในส่วนเครือข่ายเดียวกันหรือไม่]
* @param {[String]} addr1 [ที่อยู่หนึ่ง]
* @param {[String]} addr2 [ที่อยู่ที่สอง]
* @param {[String]} มาสก์ [ซับเน็ตมาสก์]
* @return {บูลีน} [จริงหรือเท็จ]
-
ฟังก์ชัน isEqualIPAddress (addr1,addr2,mask){
if(!addr1 || !addr2 || !mask){
console.log("แต่ละพารามิเตอร์ไม่สามารถเว้นว่างได้");
กลับเท็จ;
-
var
เรส1 = [],
ความละเอียด2 = [];
addr1 = addr1.split(".");
addr2 = addr2.split(".");
หน้ากาก = mask.split(".");
สำหรับ (var i = 0,ilen = addr1.length; i < ilen ; i += 1){
res1.push(parseInt(addr1[i]) & parseInt(มาสก์[i]));
res2.push(parseInt(addr2[i]) & parseInt(หน้ากาก[i]));
-
ถ้า(res1.join(".") == res2.join(".")){
console.log("ในส่วนเครือข่ายเดียวกัน");
กลับเป็นจริง;
}อื่น{
console.log("ไม่อยู่ในกลุ่มเครือข่ายเดียวกัน");
กลับเท็จ;
-
-