Предположим, что вход:
222.123.34.45
и 222.123.34.55
то мне нужно вывести ip-адрес между ними:
222.123.34.45 222.123.34.46 ... 222.123.34.55
Используйте ip2long()
и long2ip()
:
function ip_range($from, $to) { $start = ip2long($from); $end = ip2long($to); $range = range($start, $end); return array_map('long2ip', $range); }
Вышесказанное превращает два IP-адреса в числа (с использованием основных функций PHP), создает диапазон чисел и затем превращает этот диапазон чисел в IP-адреса.
Если вы хотите, чтобы они были разделены пробелами, просто implode()
результат.
Использование гибкости типа PHP
Используя тот факт, что IP-адреса на самом деле являются номерами (возможно, что-то странное
$ ip2 = '222.123.34.55';
$ips = array(); for($i=ip2long($ip);$i<=ip2long($ip2);$i++) { $ips[] = long2ip($i); } print_r($ips);