Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Đếm số địa chỉ IP giữa hai địa chỉ IPv4 bằng JavaScript


Vấn đề

Chúng ta cần viết một hàm JavaScript nhận vào hai địa chỉ IPv4, và trả về số địa chỉ giữa chúng (bao gồm địa chỉ đầu, loại trừ địa chỉ cuối).

Điều này có thể thực hiện bằng cách chuyển đổi chúng sang thập phân và tìm hiệu tuyệt đối.

Ví dụ

Dưới đây là mã:

const ip1 = '20.0.0.10'; 
const ip2 = '20.0.1.0'; 
const countIp = (ip1, ip2) => { 
  let diff = 0; 
  const aIp1 = ip1.split("."); 
  const aIp2 = ip2.split("."); 
  if (aIp1.length !== 4 || aIp2.length !== 4) { 
    return "Invalid IPs: incorrect format"; 
  } 
  for (x = 0; x < 4; x++) { 
    if ( 
      isNaN(aIp1[x]) || isNaN(aIp2[x]) 
      || aIp1[x] < 0 || aIp1[x] > 255 
      || aIp2[x] < 0 || aIp2[x] > 255 
    ) { 
      return "Invalid IPs: incorrect values" 
    } 
    diff += (aIp1[x] - aIp2[x]) * (256 * (3-x)); 
  } 
  return Math.abs(diff); 
}; 
console.log(countIp(ip1, ip2));

Kết quả

Kết quả console:

256