Computer >> Máy Tính >  >> Lập trình >> Javascript

Đếm số lượng địa chỉ IP có giữa hai địa chỉ IP trong JavaScript

Vấn đề

Chúng tôi bắt buộc phải viết một hàm JavaScript nhận hai địa chỉ IPv4 và trả về số lượng địa chỉ giữa chúng (bao gồm địa chỉ đầu tiên, không bao gồm địa chỉ cuối cùng).

Điều này có thể được thực hiện bằng cách chuyển chúng thành số thập phân và tìm sự khác biệt tuyệt đối của chúng.

Ví dụ

Sau đâ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));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

256