@dostoevkiy22

Эффективный алгоритм поиска IP?

Какой существует максимально быстрый алгоритм для CRUD операций со списком IP?
Стоит ли использовать хеш-таблицы, или же реализовать вложенный список на каждый байт адреса?
  • Вопрос задан
  • 136 просмотров
Пригласить эксперта
Ответы на вопрос 1
@deliro
Я, может, открою Америку, но IPv4 (впрочем, как и IPv6) в его привычном виде — это просто один из видов обозначения байтиков. А байтики можно представлять привычным числом в 10ричной системе. То есть, Q.W.E.P можно представить как Q<<8*3 + W<<8*2 + E<<8*1 + P

То есть, скажем, есть диапазон 192.168.1.1 – 192.168.8.255, нужно найти все айпишники в этом диапазоне, что есть в базе. 192.168.1.1 в нашем "отображении" будет выглядеть как 3232235777, а 192.168.8.255 — как 3232237823. Запрос в базу будет элементарный (WHERE ip >= 3232235777 AND ip <= 3232237823) и будет юзать btree и любой другой древовидный индекс.

Но вообще, у баз данных есть собственные типы для хранения, которые могут учитывать и маску
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы