Форум OlegON > Компьютеры и Программное обеспечение > Сеть

Объединение диапазонов IP адресов : Сеть

24.04.2024 6:05


12.06.2017 10:37
OlegON
 
Вот список https://olegon.ru/showthread.php?t=26882
Есть ли возможность автоматически оптимизировать этот список?
Суть - удалить дубликаты и склеить последовательные диапазоны, чтобы уменьшить количество записей. Как бы это сделать автоматом?
12.06.2017 10:53
student
 
Цитата:
OlegON Как бы это сделать автоматом
закинуть в таблицу, распарсить на составляющие и запросами выбрать пересечение или макс и и мин значения - хлтя вероятнее всего так слишком грубо поскольку попадут в диапазон и др адреса
12.06.2017 10:54
OlegON
 
Это теоретически :) Теоретически-то я понимаю, я про практическое какое-то конкретное решение...
12.06.2017 14:56
student
 
:) это практически
я не думаю что прокатит найти готовый инструмент. . .
так что спасение утопающих дело рук самих утопающих :)
13.06.2017 11:18
EugeneT
 
вот может поможет
или гуглить вот так
13.06.2017 13:04
OlegON
 
Не помогло, а в перле я слаб, чтобы поправить...
Гуглить, конечно, весело, только там единственное, что нормальное - заготовка на питоне :( Ну, если не знает никто, то попробую питоном тогда попозже... Я, если честно, уже руками свел все, но проверить не помешает...
06.07.2017 10:59
OlegON
 
Кто столкнется - утилитка называется aggregate, у большинства дистров в репозитории есть.
22.04.2024 12:23
OlegON
 
прошел мимо, чем-то не устроила утилитка

есть еще вариант с IPv6

но суть происходящего, для чего я начал тут писать - небольшой глюк, который есть в aggregate или моем понимании, как она работает.
Если утилитке отдать список со встречающимися адресами без подсети (даже если подставить -p32), то она начинает очень странно работать и, собственно, иногда игнорирует большие подсети, не объединяя их. Для этого я теперь сделал скриптик, через который пропускаю поток.
Код:
while IFS= read -r line; do
  if [[ "$line" != *"/"* ]]; then
    echo "$line/32"
  else
    echo "$line"
  fi
done
скриптик, как видите, самый примитивный, просто если нет /, то добавляет /32
Код:
cat list | ./collect_for_ban_add32.sh | aggregate -q -t
и тогда все работает, как задумано... Ну, по крайней мере мне так кажется :)
Часовой пояс GMT +3, время: 06:05.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.