The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Быстрое разделение ip v4 на подсети"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Быстрое разделение ip v4 на подсети"  
Сообщение от Pahanivo email(ok) on 19-Мрт-09, 16:58 
Задачко.
Есть список ip сетей (большой список), сети внутри могут пересекатся (overlaping).
Каждая сеть в списке имеет id (номер или псевдоним), те некий атрибут типа трафика из этой сети (чтобы в дальнейше скажем при выводе ip обозначить его принадлежность).
Напр: 192.168/16 (id internal), 195.58.1.1/24 (id external) и тд
Нужно быстро устанавливать принадлежность конкретного ip к сетям из списка.
В силу того что шибко не опытный програмер вижу два пути:
1) тупо каждый раз с помошью маски производить поиск по всему списку - но это тупо, ибо с ростом списка подсетей скорость поиска падает очень сильно.
2) бинарное дерево (что я собственно уже реализовал), глубина 32 (бита), те всегда максимум 32 проверки при любом количестве подсетей и легко реализуестя обработка перекрывающихся подсетей.

мож кто подскажет еще какие варианты?

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Быстрое разделение ip v4 на подсети"  
Сообщение от Аноним (??) on 19-Мрт-09, 22:22 
>2) бинарное дерево (что я собственно уже реализовал), глубина 32 (бита), те
>всегда максимум 32 проверки при любом количестве подсетей и легко реализуестя
>обработка перекрывающихся подсетей.

Это _уже_ O(1), асимптотически быстрее сделать нельзя. Не заморачивайся.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру