Отсортировать IP диапазоны

Савелей

Новичок
Привет всем,
у меня просьба, помогите отсортировать IP диапазоны,
нужно из списка вида:

44.202.254.0
44.202.254.0
44.202.255.0
22.160.84.0
22.160.85.0
22.160.86.0
22.160.86.0
22.160.87.0
22.160.96.0
22.160.96.0
22.160.96.0
22.160.96.0
22.160.96.0
22.160.96.0
22.160.97.0
22.160.98.0
22.160.98.0
22.160.99.0
22.160.117.0
22.160.118.0
22.160.118.0
22.160.119.0
22.160.120.0
22.160.120.0
22.160.120.0
22.160.120.0
22.160.121.0
22.160.122.0
22.160.122.0
22.160.123.0
22.160.124.0
22.160.124.0
22.160.124.0
22.160.125.0
22.160.126.0
22.160.126.0
22.160.127.0
9.204.196.0
9.204.196.0
9.204.196.0
9.204.197.0
9.204.198.0
9.204.198.0
9.204.199.0
9.246.128.0
9.246.128.0
9.246.128.0
9.246.130.0
9.246.132.0
9.246.134.0
9.246.136.0
9.246.136.0
9.246.138.0
9.246.140.0
9.246.142.0
9.246.144.0
9.246.144.0
9.246.146.0
9.246.148.0
9.246.150.0
9.246.152.0
9.246.152.0
9.246.154.0
9.246.156.0
9.246.158.0
9.250.51.0
9.250.52.0
9.250.52.0
9.250.52.0
9.250.53.0
9.250.54.0
9.250.54.0
9.250.55.0
9.250.56.0
9.250.56.0
9.250.56.0
9.250.56.0
9.250.57.0
9.250.58.0
9.250.58.0
9.250.59.0
9.250.60.0

получить список:

44.202.254.0
44.202.255.0

22.160.84.0
22.160.87.0

22.160.96.0
22.160.99.0

22.160.117.0
22.160.127.0

9.204.196.0
9.204.199.0

9.246.128.0
9.246.158.0

прошу помогите, буду благодарен любой информации...
 
Последнее редактирование:

michelle

Новичок
Почитай как формируются и считаются сетевые маски.
Непонятно, например 44.202.254.0 это сеть по маске допустим 24, ну или может быть это просто отдельный адрес
 

michelle

Новичок
Посмотрел внимательно на твой список - наводка см функцию ip2long ну а дальше выборка уникальных.
 

Савелей

Новичок
function ipGroupByRange($ipList)
{
$res = array();

foreach($ipList as $ip) {
$res[preg_replace('/^((\d+\.){2}).+$/', '$1', $ip)][] = $ip;
}

foreach($res as &$ips)
{
usort($ips, function($ip1, $ip2){
return strnatcmp($ip1, $ip2);
});

$ips = array(array_shift($ips), array_pop($ips));
}

return ($res);
}

print_r(ipGroupByRange($ipList));

Сделал пока так, далее затык:(
 

michelle

Новичок
Сдадись 2-ка тебе.

Почитай что такое ip - октеты, бинарное представление адреса.
А так - ip2long тебе в помошь.
 

Савелей

Новичок
я читал, но не фига, я не могу в них разобраться...
хоть приблизительный пример может кто даст, а вообще легко отвечать,
читай то или это, как учителя а не помощники с форума в инете:(
 

AnrDaemon

Продвинутый новичок
Помощь тебе оказали. А делать твою работу за тебя тут никто не будет. По крайней мере забесплатно.
 

Савелей

Новичок
Спасибо тебе хоть что-то не стандартное, а вообще тухлый стал форум, одни барыги да ламеры остались на нем.
ответить по теме не могут вот и начинают учить (посмотри фак по стандартным функциям), нет чтоб показать что умнее меня и кинуть пример по теме, хотя бы как я на большую половину:(
 
Последнее редактирование:

AnrDaemon

Продвинутый новичок
Тут все люди взрослые, на "слабо" не ведутся. Так что побереги дыхание.
 
  • Like
Реакции: AmdY

michelle

Новичок
@Савелей, я тебе дал наводку вида - Штирлиц увидел висящие в окне 33 утюга и понял что это провал.
Если ты ничего не понял - кто виноват?
 
Сверху