ip2region - это библиотека для офлайн-определения местоположения по IP-адресу и управления IP-локацией, с временем запроса в десятках микросекунд. Предоставляет клиенты для генерации и запроса данных xdb
для многих популярных языков программирования.
xdb
поддерживает миллиарды записей IP-адресов. По умолчанию информация о регионе имеет фиксированный формат: Страна|Регион|Штат|Город|Интернет-провайдер
. По умолчанию информация о регионе не указана (значение по умолчанию равно 0).
Информация о регионе может быть полностью настроена, например, можно добавить данные, необходимые для конкретного бизнеса, такие как GPS-координаты, международные коды регионов или почтовые индексы. Это означает, что вы можете использовать ip2region для управления собственными данными о локации IP-адресов.
Программа для генерации формата xdb
автоматически удаляет дубликаты и сжимает данные. Полная база данных IP-адресов по умолчанию составляет 11 МБ. Размер базы данных увеличивается по мере увеличения детализации данных.### 3. Быстрый ответ на запросы
Даже при полном использовании файла xdb
, время ответа на запрос составляет десятки микросекунд. Ускорение запросов в памяти можно включить двумя способами:
vIndex
: использование фиксированного пространства памяти размером 512 КБ для кэширования данных индекса вектора, что позволяет избежать одной операции ввода-вывода на диске и поддерживает среднее время запроса в пределах 10-20 микросекунд.xdb
: загрузка всего файла xdb
в память, что эквивалентно размеру файла xdb
, без операций ввода-вывода на диске, что поддерживает микросекундное время запроса.## Запрос данных xdb
API, документация и тестовые программы доступны в разделе ReadMe соответствующих клиентов поиска searcher
. Все реализации клиентов запроса показаны в таблице ниже:| OK? | Статус | Язык программирования | Описание | Автор |
|:-------------------|:-----|:---|:----------------------|:--------------------|
| xdb
данныеДля получения информации об API, документации и тестовых программах, обратитесь к документации ReadMe в соответствующих генераторах данных:
Ok? | Статус | Язык программирования | Описание | Автор |
---|---|---|---|---|
![]() |
Завершено | golang | Реализация программы для генерации xdb на Go | Lion |
![]() |
Завершено | java | Реализация программы для генерации xdb на Java | Lion |
![]() |
Завершено | python | Реализация программы для генерации xdb на Python | leolin49 |
![]() |
Завершено | csharp | Реализация программы для генерации xdb на C# | Alan Lee |
![]() |
Завершено | rust | Реализация программы для генерации xdb на Rust | KevinWang |
![]() |
Завершено | C++ | Реализация программы для генерации xdb на C++ | Yunbin Liu |
xdb
Данные обновленияЦель проекта ip2region
заключается в исследовании дизайна и реализации хранения данных IP и быстрого поиска, и он не имеет поддержки исходных данных IP, также нет коммерческой версии.
Встроенные данные проекта . /data/ip. merge. txt
давно не обновлялись и не будут обновляться. Для сценариев использования, требующих высокой точности данных и частоты обновления, рекомендуется приобрести коммерческие данные от сторонних поставщиков. Вы можете использовать следующие способы для самостоятельного обновления данных:
Вы можете использовать встроенные исходные данные IP . /data/ip. merge. txt
и инструменты редактирования, предоставленные ip2region, чтобы самостоятельно внести изменения. В настоящее время существуют следующие источники данных:
1.Данные, предоставленные сообществом ip2region (пожалуйста, обратитесь к нижней части страницы для получения уведомлений от сообщества через WeChat)
2. Задачи с меткой [дополнение данных]
на Github/Gitee ip2region
3. Другие пользовательские данные: например, данные, предоставленные клиентами, или данные, полученные с помощью GPS и WIFI, или данные из других платформ, соответствующие законодательству и нормативным актам
Инструкции по использованию инструментов редактирования исходных данных IP представлены в документации ReadMe в разделе maker
генерирующих программ:
Ok? | Статус | Язык программирования | Описание | Автор |
---|---|---|---|---|
![]() |
Завершено | golang | Редактор исходных данных IP на golang | Lion |
В процессе | java | Редактор исходных данных IP на java | Lion | |
![]() |
Завершено | C++ | Редактор исходных данных IP на C++ | Yunbin Liu |
Если вы хотите обновить данные через свой собственный API или источник данных, вы можете использовать алгоритм обновления, представленный в следующих видео:
Все запросы к кэшу xdb безопасны для параллельного выполнения, в то время как запросы к файлам не безопасны. Для безопасного использования в разных процессах/потоках/корутинах необходимо создавать разные объекты запроса. При большом количестве параллельных запросов к файлам может возникнуть ошибка из-за превышения допустимого количества открытых файлов. В этом случае необходимо увеличить значение параметра fs. file-max
или загрузить весь xdb в память для безопасного параллельного использования.
Пожалуйста, подпишитесь на WeChat-аккаунт lionsoul-org (душа льва)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )