|
|
|
Фильтр по ip адрессу
|
|||
|---|---|---|---|
|
#18+
Привет, пишу на яве некий сетевой сервис и вот потребовалось сделать быстрый и компактный поиск по спискам IP адрессов/сетей. Таких списков планируется много, клиет может настроить множество правил на разные сущности. Встал вопрос компактности хранения отдельных списков IP адресов, а так же поиска по ним если список вдруг станет достаточно большим (пару тысяч сетей/адресов). Кто что может посоветовать ? Если уже готовые велосипеды ? или какие наработки для таких алгоритмов ? Буду рад любому ... так как я пока ничего толкового не придумал: Если список маленький то перебирать поочерёдно .... Если большой то строить Мар по сетям , а адреса конвертировать в сеть с маской /32 ... а алгоритм поиска довольно простой искать сетку с маской /32 потом /31 ... и так далее.. Может проще строить бинарное дерево в памяти и бегать по нему ... (изменения в таком дереве только через перестройку его с начала ) Есть у кого идеи ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2012, 18:58:14 |
|
||
|
Фильтр по ip адрессу
|
|||
|---|---|---|---|
|
#18+
KRED, на что тратится у тебя рессурсы? Если простой перебор, то пару тысяч элементов - это пустяк. Не усложняй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2012, 19:29:18 |
|
||
|
Фильтр по ip адрессу
|
|||
|---|---|---|---|
|
#18+
Usman, Спасибо ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2012, 19:50:37 |
|
||
|
Фильтр по ip адрессу
|
|||
|---|---|---|---|
|
#18+
Petro123KRED, на что тратится у тебя рессурсы? Если простой перебор, то пару тысяч элементов - это пустяк. Не усложняй. Ты не повериш ... всё упирается в сетевой стек операционки :-) , но скоро будет все намного быстрее работать чем те жалкие 170к запросов в секунду что получается получить через ОС. Но суть не в этом, а в том что мне нужно реализовать некую логику основаную на нахождении клиента в каком либо списке IP адресов. Например GEO базаданных , например списки доступа ... например ещо что то связаное со списками Адрессов/сетей. И так как такие операции будут очень частыыми (несколько проверок на один запрос) то я и задумался что будет лудше простого перебора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2012, 19:58:10 |
|
||
|
Фильтр по ip адрессу
|
|||
|---|---|---|---|
|
#18+
для скорости IP сдвигом превращают в bigint Как говориться все давно уже придумано. Это примерно как логи ISA сервера, там в базе IP все bigint ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2012, 20:25:33 |
|
||
|
Фильтр по ip адрессу
|
|||
|---|---|---|---|
|
#18+
Alex_1976для скорости IP сдвигом превращают в bigint Как говориться все давно уже придумано. Это примерно как логи ISA сервера, там в базе IP все bigint немоглибы вы уточнить Вашу идею ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2012, 19:10:22 |
|
||
|
Фильтр по ip адрессу
|
|||
|---|---|---|---|
|
#18+
KREDAlex_1976для скорости IP сдвигом превращают в bigint Как говориться все давно уже придумано. Это примерно как логи ISA сервера, там в базе IP все bigint немоглибы вы уточнить Вашу идею ? Преобразование ip address ... integer ->decimal dot notattion и обратно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2012, 00:42:39 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=262&tid=2130690]: |
0ms |
get settings: |
15ms |
get forum list: |
19ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
4ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 308ms |
| total: | 464ms |

| 0 / 0 |
