Иногда нужно из записи IP вида 109.248.12.0/23 получить полный список IP (новый IP - новая строка).
Как из короткой записи диапазона IP адресов получить полный список (Php / CIDR)
05.02.2024
<?php function cidrToRange($cidr) { $range = array(); $cidr = explode('/', $cidr); $range[0] = long2ip((ip2long($cidr[0])) & ((-1 << (32 - (int)$cidr[1])))); $range[1] = long2ip((ip2long($range[0])) + pow(2, (32 - (int)$cidr[1])) - 1); return $range; } function cidrRangeToArray($from, $to) { $start = ip2long($from); $end = ip2long($to); $range = range($start, $end); return array_map('long2ip', $range); } $aRange = cidrToRange("109.248.12.0/23"); $aInRanges = explode("\n", file_get_contents( __DIR__ . "out.txt"));