Задать вопрос
@stikname

Как на php получить список сетей из диапазона IP?

Подскажите решение на php для того чтобы переводить диапазон адресов в сеть с маской.

Например:
80.75.133.0-80.75.135.127


Перевести в:
80.75.133.0/24
80.75.134.0/24
80.75.135.0/25


В качестве примера могу показать такой сайт:
ip-calculator.ru

Второй вариант "Получить список сетей"

Я могу делать запросы к нему через тот же curl и переводить нужные мне диапазоны в сети с маской, затем их парсить, но это ужасный костыль :) Хотелось бы найти решение делать это у себя в скрипте.

Спасибо.
  • Вопрос задан
  • 6113 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)

Рассмотрим пример записи диапазона IP-адресов в виде 10.96.0.0/11. В этом случае маска подсети будет иметь двоичный вид 11111111 11100000 00000000 00000000, или то же самое в десятичном виде: 255.224.0.0. 11 разрядов IP-адреса отводятся под номер сети, а остальные 32 - 11 = 21 разряд полного адреса - под локальный адрес в этой сети. Итого, 10.96.0.0/11 означает диапазон адресов от 10.96.0.1 до 10.127.255.255.


вы это читали?
www.php.net/manual/ru/ref.network.php#75922
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы