@DontQuantum

Как посчитать количество комбинаций в диапазоне ip?

Есть вот такой вот диапазон - 217.28.250.232 - 217.28.252.215
1) 217.28.250.232 - 217.28.252.255 = 23
2) 217.28.251.0 - 217.28.252.255 = 255
3) 217.28.252.0 - 217.28.252.215 = 215
В сумме 493
Посчитать на листочке вроде бы не сложно. Но какую бы формулу для этого использовать ? 0_о
  • Вопрос задан
  • 149 просмотров
Решения вопроса 1
john36allTa
@john36allTa
That`s calling Walker
На JS: (язык тут не был указан)
const ip2int = (ip) => 
	ip.split('.')
	.map( (value, index) => Number(value) * 256 ** (3-index))
	.reduce( (sum,value) => sum + value, 0);
const range = (from, to) => ip2int(to) - ip2int(from);
console.log(range("192.168.1.0", "192.168.1.255"));
// 255 - т.е. броадкаст адрес он тоже считает

Суть - перевести ip в целые числа и вычесть их
Универсальный и простейший алгоритм перевода ip в число, например 5.24.0.0:
5 * (256^3) + 24 * (256^2) + 0 * 256 + 0 = 85458944
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
dollar
@dollar
Формулу с вашего листочка. Или вам принципиальна формула в одну строку?
Хотя, вы же хотите считать сумму диапазонов, небось произвольных (без маски), куда уж там в одну строку.

В общем, если есть алгоритм, значит можно сделать калькулятор. А будет ли там 10 строчек кода или 200 - не так важно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 100 000 до 120 000 руб.
Acme Crypto Corp Нижний Новгород
от 70 000 до 100 000 руб.
ВЫМПЕЛ Москва
от 100 000 до 200 000 руб.
22 нояб. 2019, в 17:16
200 руб./за проект
22 нояб. 2019, в 17:09
6000 руб./за проект
22 нояб. 2019, в 16:37
10000 руб./за проект