ip2region — это автономная библиотека определения местоположения IP-адресов и платформа управления данными о местоположении IP. Она имеет эффективность запросов 10 микросекунд и обеспечивает генерацию данных xdb
и реализацию клиента запросов для многих основных языков программирования.
xdb
поддерживает сотни миллионов строк сегментов IP-данных. Информация о регионе по умолчанию имеет фиксированный формат:国家|区域|省份|城市|ISP
. По умолчанию информация о регионе равна 0. Информация о регионе поддерживает полную настройку. Например, вы можете добавить данные с учетом конкретных бизнес-потребностей в регионе, такие как информация GPS/международный унифицированный региональный информационный код/почтовый индекс и т. д. То есть вы можете использовать ip2region для управления собственными данными о местоположении IP.
Программа создания формата xdb
автоматически дедуплицирует и сжимает некоторые данные. По умолчанию создаются все IP-данные. Размер сгенерированной базы данных ip2region.xdb увеличивается. По мере увеличения детализации данных размер базы данных постепенно увеличивается.
Даже для запросов, полностью основанных на файлах xdb
, время ответа для одного запроса составляет десять микросекунд. Запросы с ускорением памяти можно включить следующими двумя способами:
vIndex
: используйте фиксированное пространство памяти 512KiB
для кэширования данных векторного индекса, сократите одну дисковую операцию ввода-вывода и поддерживайте стабильную среднюю эффективность запросов в пределах 10–20 микросекунд.xdb
: загрузка всего файла xdb
в память. Использование памяти равно размеру файла xdb
. Операции ввода-вывода с диска не выполняются, и сохраняется эффективность запросов на уровне микросекунд.xdb
Введение в API, документацию по использованию и процедуры тестирования см. во введении ReadMe соответствующего клиента searcher
запросов. Реализация всех привязок запросов следующая:
Хорошо? | состояние | язык программирования | описывать | Автор |
---|---|---|---|---|
✅ | Завершенный | голанг | реализация клиента запроса golang xdb | Лев |
✅ | Завершенный | php | Реализация клиента запроса PHP xdb | Лев |
✅ | Завершенный | Ява | Реализация клиента запросов Java xdb | Лев |
✅ | Завершенный | Луа | Реализация клиента запроса Pure Lua xdb | Лев |
✅ | Завершенный | с | Реализация клиента запроса ANSC c xdb | Лев |
✅ | Завершенный | lua_c | Реализация расширенного клиента запросов xdb Lua c | Лев |
✅ | Завершенный | ржавчина | реализация клиента запроса Rust XDB | Гунчжэнъян |
✅ | Завершенный | питон | реализация клиента запроса xdb на Python | Потрясающий Хуахуа |
✅ | Завершенный | nodejs | реализация клиента запросов nodejs xdb | У Цзянь Пин |
✅ | Завершенный | csharp | реализация клиента запроса csharp xdb | Алан Ли |
✅ | Завершенный | эрланг | Реализация клиента запросов Erlang xdb | лейхуа996 |
Для начала | php_ext | Расширение PHP c xdb, реализация клиента запроса | Будет определено | |
✅ | Завершенный | nginx | nginx расширяет реализацию клиента запросов xdb | У Цзянь Пин |
✅ | Завершенный | С++ | Реализация клиента запроса C++ xdb | Юнбин Лю |
Следующие реализации набора инструментов предоставлены разработчиками сообщества через сторонние репозитории:
Хорошо? | состояние | язык программирования | описывать | Автор |
---|---|---|---|---|
✅ | Завершенный | рубин-ip2region | реализация клиента запросов Ruby XDB | jicheng1014 |
✅ | Завершенный | Ip2regionИнструмент | инструмент преобразования данных ip2region | рудный камень |
xdb
Введение в API, документацию по использованию и процедуры тестирования см. в документе ReadMe в рамках программы создания maker
ниже:
Хорошо? | состояние | язык программирования | описывать | Автор |
---|---|---|---|---|
✅ | Завершенный | голанг | Реализация программы генерации Golang xdb | Лев |
✅ | Завершенный | Ява | Реализация программы генерации Java xdb | Лев |
Для начала | с | Реализация программы генерации xdb ANSC c | Лев | |
✅ | Завершенный | питон | Реализация программы генерации xdb на Python | леолин49 |
✅ | Завершенный | csharp | реализация программы генерации xdb csharp | Алан Ли |
✅ | Завершенный | ржавчина | реализация генератора Rust XDB | КевинВанг |
✅ | Завершенный | С++ | Реализация программы генерации xdb на C++ | Юнбин Лю |
xdb
Целью ip2region является изучение дизайна и реализации хранилища IP-данных и быстрого запроса . Он не поддерживает исходные IP-данные, и коммерческой версии не будет. Исходные данные ./data/ip.merge.txt
, поставляемые с этим проектом, не обновлялись в течение длительного времени и не будут обновляться снова. Для сценариев использования, требующих высокой точности данных и частоты обновления, рекомендуется приобрести сторонние данные. -сторонние коммерческие данные Вы можете использовать Есть несколько способов попробовать обновить данные самостоятельно:
Вы можете использовать инструменты редактирования, предоставляемые ip2region, чтобы изменить его на основе исходных IP-данных ./data/ip.merge.txt
, поставляемых с ip2region. В настоящее время существует несколько способов получения данных:
[数据源补充]
в ip2region Github/Gitee Чтобы узнать, как использовать оригинальный инструмент редактирования IP-данных, обратитесь к документу ReadMe в рамках программы генерации maker
ниже:
Хорошо? | состояние | язык программирования | описывать | Автор |
---|---|---|---|---|
✅ | Завершенный | голанг | golang оригинальный редактор IP-данных | Лев |
Для начала | Ява | Редактор необработанных IP-данных Java | Лев | |
✅ | Завершенный | С++ | Редактор необработанных IP-данных C++ | Юнбин Лю |
Если вы хотите обновить данные через собственный API или источник данных, вы можете обратиться к алгоритму обновления,基于检测算法
представленному в следующем видео, чтобы самостоятельно написать программу обновления:
Весь кэшированный запрос xdb безопасен для параллелизма. Запросы на основе файлов не являются безопасными для параллелизма. Необходимо безопасно использовать различные процессы/потоки/сопрограммы, создавая разные объекты запросов. Когда объем параллелизма велик, запросы на основе файлов. Метод запроса может вызвать ошибку при слишком большом количестве открытых файлов. Измените максимальное количество открытых файлов, разрешенное ядром (fs.file-max=более высокое значение), или загрузите весь xdb в память для безопасного одновременного использования.
Пожалуйста, сначала подпишитесь на общедоступную учетную запись WeChat Lionsoul-org (Душа Льва).