Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: отсортировать диапазон ip
Форумы портала PHP.SU » » Вопросы новичков » отсортировать диапазон ip

Страниц (1): [1]
 

1. савелей - 13 Апреля, 2018 - 07:10:58 - перейти к сообщению
Привет всем,
у меня просьба, помогите отсортировать 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​

прошу помогите, буду благодарен любой информации..
2. Vladimir Kheifets - 13 Апреля, 2018 - 08:25:27 - перейти к сообщению
савелей пишет:
Привет всем,
у меня просьба, помогите отсортировать IP диапазоны,
нужно из списка вида:
44.202.254.0
44.202.254.0
44.202.255.0
.................
получить список:
44.202.254.0
44.202.255.0
.....................
прошу помогите, буду благодарен любой информации..

Привет!
Как я понял Вам нужно Выбрать из списка уникальные адреса.
Можно сделать так:
PHP:
скопировать код в буфер обмена
  1. $ip=['44.202.254.0',
  2. '44.202.254.0',
  3. '44.202.255.0',
  4. '22.160.84.0',
  5. '22.160.85.0',
  6. '22.160.86.0',
  7. '22.160.86.0',
  8. '22.160.87.0'];
  9.  
  10. $res= array_unique ( $ip ,  SORT_STRING  );
  11. foreach($res as $v) echo "$v<br>";
  12.  
  13. /*
  14. Результат:
  15. 44.202.254.0
  16. 44.202.255.0
  17. 22.160.84.0
  18. 22.160.85.0
  19. 22.160.86.0
  20. 22.160.87.0
  21. */

Удачи!
3. савелей - 13 Апреля, 2018 - 08:54:10 - перейти к сообщению
Vladimir Kheifets пишет:
савелей пишет:
Привет всем,
у меня просьба, помогите отсортировать IP диапазоны,
нужно из списка вида:
44.202.254.0
44.202.254.0
44.202.255.0
.................
получить список:
44.202.254.0
44.202.255.0
.....................
прошу помогите, буду благодарен любой информации..

Привет!
Как я понял Вам нужно Выбрать из списка уникальные адреса.
Можно сделать так:
PHP:
скопировать код в буфер обмена
  1. $ip=['44.202.254.0',
  2. '44.202.254.0',
  3. '44.202.255.0',
  4. '22.160.84.0',
  5. '22.160.85.0',
  6. '22.160.86.0',
  7. '22.160.86.0',
  8. '22.160.87.0'];
  9.  
  10. $res= array_unique ( $ip ,  SORT_STRING  );
  11. foreach($res as $v) echo "$v<br>";
  12.  
  13. /*
  14. Результат:
  15. 44.202.254.0
  16. 44.202.255.0
  17. 22.160.84.0
  18. 22.160.85.0
  19. 22.160.86.0
  20. 22.160.87.0
  21. */

Удачи!



нет, немного не так, нужно именно получить уникальные плюс к этому выбрать первый и последний...

то есть было:

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

получить только 6 адресов, начало, конец...

22.160.84.0
22.160.87.0

22.160.96.0
22.160.99.0

22.160.117.0
22.160.127.0

получить уникальные проблем нет, но все равно спасибо.
Может еще кто поможет...
4. armancho7777777 - 13 Апреля, 2018 - 08:58:32 - перейти к сообщению
Function ipGroupByRange (Отобразить)

PHP:
скопировать код в буфер обмена
  1. print_r(ipGroupByRange($ipList));

Result (Отобразить)


?
(Добавление)
савелей пишет:
22.160.96.0
22.160.99.0

22.160.117.0
22.160.127.0

Почему диапазон не 22.160.96.0 - 22.160.127.0 ?
5. савелей - 13 Апреля, 2018 - 09:14:20 - перейти к сообщению
armancho7777777 пишет:
Почему диапазон не 22.160.96.0 - 22.160.127.0 ?


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

 

Powered by ExBB FM 1.0 RC1