Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 поиск IP в базе  [new]
MAndy75
Member

Откуда:
Сообщений: 8
Здравствуйте Уважаемые!

Давно задался вопросом, есть задача, есть списки IP x.x.x.x или подсетей x.x.x.x/24 или вообще диапазон х.х.х.х-у.у.у.у
Не могу придумать/найти, компонент, который позволит находить, принадлежит ли искомый IP данным подсетям, не верю что не уже что-то подобного...

Задача как можно быстро(очень быстро) находить ответ на данный вопрос исходя из возможного списка 3-х типов данных.

Список IP это самое простое, тупо высчитывать хеш сумму и искать совпадение, но вот подсети и диапазон уже сложнее.

Заранее Благодарю!

С уважением.
12 окт 17, 14:24    [20864219]     Ответить | Цитировать Сообщить модератору
 Re: поиск IP в базе  [new]
MAndy75
Member

Откуда:
Сообщений: 8
да... пишу на delphi 7
12 окт 17, 14:25    [20864223]     Ответить | Цитировать Сообщить модератору
 Re: поиск IP в базе  [new]
schi
Member

Откуда: Москва
Сообщений: 2227
за секунду поиска по ip subnet calculator source code:

https://www.codeproject.com/Tips/850531/IP-Subnet-Calculator-Lib
12 окт 17, 15:01    [20864413]     Ответить | Цитировать Сообщить модератору
 Re: поиск IP в базе  [new]
MAndy75
Member

Откуда:
Сообщений: 8
schi, Доброго дня!

Спасибо, за наводку, в Java я не селен, но попробую разобраться.
Я Подумывал "разложить" IP адрес и маску в бинарную систему и "по дереву" искать, если нет совпадения, то находить ближайший диапазон и там проверять...
12 окт 17, 15:32    [20864553]     Ответить | Цитировать Сообщить модератору
 Re: поиск IP в базе  [new]
MAndy75
Member

Откуда:
Сообщений: 8
А IP калькулятор с свой писал, даже в двух вариациях, один сам, вторую версию некоторые моменты подсмотрел и переписал под себя, где по маске вычисляется начало и окончание сети(диапазон), Тип сети, сравнение, входит ли IP в подсеть...
Но смысл не сравнивать не перебором допустим миллион строк а получать результат за несколько "шагов".
12 окт 17, 15:35    [20864573]     Ответить | Цитировать Сообщить модератору
 Re: поиск IP в базе  [new]
MAndy75
Member

Откуда:
Сообщений: 8
Например есть модуль GeoIP (увы я пока в нем не разобрался) он практически мгновенно находит какой IP принадлежит какой подсети и соответственно Стране, но работает он с файлом, я же хочу считывать данные в память, и там уже искать.
12 окт 17, 15:39    [20864601]     Ответить | Цитировать Сообщить модератору
 Re: поиск IP в базе  [new]
MAndy75
Member

Откуда:
Сообщений: 8
Вот мой пример, IP калькулятора.

К сообщению приложен файл (NetworkLibCore.pas - 28Kb) cкачать
12 окт 17, 15:52    [20864660]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить