Знает кто хорошую библиотеку для конвертации диапазона IP в CIDR(ы)? Не могу найти нормальную библиотеку на PHP для преобразования диапазона IP адресов в CIDR (или CIDRы). То есть на вход ей дать к примеру 10.0.23.40-10.0.25.241 а на выходе получить что-то вроде 10.0.23.40/29 10.0.23.48/28 10.0.23.64/26 10.0.23.128/25 10.0.24.0/24 10.0.25.0/25 10.0.25.128/26 10.0.25.192/27 10.0.25.224/28 10.0.25.240/31
Можно использовать библиотеку IPTools для PHP, которая содержит функции для манипуляции с IP адресами. Вот пример использования:
require_once 'vendor/autoload.php'; // Подключаем автозагрузчик composeruse IPTOOLS\IPTools;
$ip_range = '10.0.23.40-10.0.25.241';
$cidr_list = IPTools::iptocidr($ip_range);
foreach ($cidr_list as $cidr) {
echo $cidr . "\n";
}
Установите библиотеку IPTools с помощью Composer:
composer require ip2location/ip-toolsЭтот код разделит указанный диапазон IP адресов на подсети CIDR и выведет список CIDR-ов.