Напишите функцию, которая получает два IPv4-адреса и возвращает количество адресов между ними (включая первый, исключая последний).
Все входные данные будут действительными IPv4-адресами в виде строк. Последний адрес всегда будет больше первого.
Пример кода:
ipsBetween("150.0.0.0", "150.0.0.1") => 1
ipsBetween("10.0.0.0", "10.0.0.50") => 50
ipsBetween("10.11.12.13", "10.11.13.0") => 243
ipsBetween("50.0.0.0", "50.1.1.1") => 65793Решение задачи🔽
function ipsBetween(start, end) {
// Функция для преобразования IP-адреса в число
function ipToNumber(ip) {
return ip.split('.').reduce((acc, octet) => (acc << 8) + parseInt(octet, 10), 0);
}
// Преобразование начального и конечного IP-адреса в числа
const startNum = ipToNumber(start);
const endNum = ipToNumber(end);
// Возвращаем количество адресов между ними
return endNum - startNum;
}
// Примеры использования
console.log(ipsBetween("150.0.0.0", "150.0.0.1")); // => 1
console.log(ipsBetween("10.0.0.0", "10.0.0.50")); // => 50
console.log(ipsBetween("10.11.12.13", "10.11.13.0")); // => 243
console.log(ipsBetween("50.0.0.0", "50.1.1.1")); // => 65793