1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lionsoul-ip2region

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
ReadMe.md

Что такое ip2region

ip2region - это библиотека для офлайн-определения местоположения по IP-адресу и управления IP-локацией, с временем запроса в десятках микросекунд. Предоставляет клиенты для генерации и запроса данных xdb для многих популярных языков программирования.

Основные характеристики ip2region

1. Управление IP-данными

xdb поддерживает миллиарды записей IP-адресов. По умолчанию информация о регионе имеет фиксированный формат: Страна|Регион|Штат|Город|Интернет-провайдер. По умолчанию информация о регионе не указана (значение по умолчанию равно 0).

Информация о регионе может быть полностью настроена, например, можно добавить данные, необходимые для конкретного бизнеса, такие как GPS-координаты, международные коды регионов или почтовые индексы. Это означает, что вы можете использовать ip2region для управления собственными данными о локации IP-адресов.

2. Удаление дубликатов и сжатие данных

Программа для генерации формата xdb автоматически удаляет дубликаты и сжимает данные. Полная база данных IP-адресов по умолчанию составляет 11 МБ. Размер базы данных увеличивается по мере увеличения детализации данных.### 3. Быстрый ответ на запросы Даже при полном использовании файла xdb, время ответа на запрос составляет десятки микросекунд. Ускорение запросов в памяти можно включить двумя способами:

  1. Кэширование индекса vIndex: использование фиксированного пространства памяти размером 512 КБ для кэширования данных индекса вектора, что позволяет избежать одной операции ввода-вывода на диске и поддерживает среднее время запроса в пределах 10-20 микросекунд.
  2. Кэширование всего файла xdb: загрузка всего файла xdb в память, что эквивалентно размеру файла xdb, без операций ввода-вывода на диске, что поддерживает микросекундное время запроса.## Запрос данных xdb API, документация и тестовые программы доступны в разделе ReadMe соответствующих клиентов поиска searcher. Все реализации клиентов запроса показаны в таблице ниже:| OK? | Статус | Язык программирования | Описание | Автор | |:-------------------|:-----|:---|:----------------------|:--------------------| | :white_check_mark: | Завершено | golang | Реализация клиента запроса xdb на Go | Lion | | :white_check_mark: | Завершено | php | Реализация клиента запроса xdb на PHP | Lion | | :white_check_mark: | Завершено | java | Реализация клиента запроса xdb на Java | Lion | | :white_check_mark: | Завершено | lua | Реализация чистого клиента запроса xdb на Lua | Lion | | :white_check_mark: | Завершено | c | Реализация клиентского запроса ANSC с xdb | Lion | | :white_check_mark: | Завершено | lua_c | Реализация Lua с расширениями для клиентского запроса xdb | Lion | | :white_check_mark: | Завершено | rust | Реализация Rust xdb клиентского запроса | gongzhengyang | | :white_check_mark: | Завершено | python | Реализация Python xdb клиентского запроса | Ловкий Цветок | | :white_check_mark: | Завершено | nodejs | Реализация Node.js xdb клиентского запроса | Ву Цзянь Пин | | :white_check_mark: | Завершено | csharp | Реализация C# xdb клиентского запроса | Ален Ли | | :white_check_mark: | Завершено | erlang | Реализация Erlang xdb клиентского запроса | Малу ||     | В процессе | php_ext | Реализация PHP расширения для клиентского запроса xdb | В процессе | | :white_check_mark: | Завершено | nginx | Реализация Nginx расширения для клиентского запроса xdb | Ву Цзянь Пин | | :white_check_mark: | Завершено | C++ | Реализация C++ xdb клиентского запроса | Юньбинь Лю | | :white_check_mark: | Завершено | Typescript | Реализация TypeScript xdb клиентского запроса | Алан Ли | Также реализованы следующие инструменты, предоставленные сообществом через внешние репозитории: | Ok? | Статус | Язык программирования | Описание | Автор | |:-------------------|:-----| :--- | :--- | :--- | | :white_check_mark: | Завершено | ruby-ip2region | Реализация Ruby xdb клиентского запроса | jicheng1014 | | :white_check_mark: | Завершено | Ip2regionTool | Инструмент для преобразования данных ip2region | orestonce |

xdb данные

Для получения информации об API, документации и тестовых программах, обратитесь к документации ReadMe в соответствующих генераторах данных:

Ok? Статус Язык программирования Описание Автор
:white_check_mark: Завершено golang Реализация программы для генерации xdb на Go Lion
:white_check_mark: Завершено java Реализация программы для генерации xdb на Java Lion
:white_check_mark: Завершено python Реализация программы для генерации xdb на Python leolin49
:white_check_mark: Завершено csharp Реализация программы для генерации xdb на C# Alan Lee
:white_check_mark: Завершено rust Реализация программы для генерации xdb на Rust KevinWang
:white_check_mark: Завершено 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? Статус Язык программирования Описание Автор
:white_check_mark: Завершено golang Редактор исходных данных IP на golang Lion
    В процессе java Редактор исходных данных IP на java Lion
:white_check_mark: Завершено C++ Редактор исходных данных IP на C++ Yunbin Liu

Автоматическое обновление

Если вы хотите обновить данные через свой собственный API или источник данных, вы можете использовать алгоритм обновления, представленный в следующих видео:

  1. Обновление данных видео - часть OnClickListener
  2. Обновление данных видео - часть 2

Примечания

1.Параллельные запросы

Все запросы к кэшу xdb безопасны для параллельного выполнения, в то время как запросы к файлам не безопасны. Для безопасного использования в разных процессах/потоках/корутинах необходимо создавать разные объекты запроса. При большом количестве параллельных запросов к файлам может возникнуть ошибка из-за превышения допустимого количества открытых файлов. В этом случае необходимо увеличить значение параметра fs. file-max или загрузить весь xdb в память для безопасного параллельного использования.

2. Технические ресурсы

  1. Анализ структуры данных xdb: "ip2region xdb структура данных и процесс запроса"
  2. Анализ процесса запроса xdb: "ip2region xdb структура данных и процесс запроса"
  3. Анализ процесса создания xdb: "ip2region xdb процесс создания двоичных данных"
  4. Методы обновления данных xdb: "ip2region обновление данных и использование редактора xdb"

3. Технические блоги

Пожалуйста, подпишитесь на WeChat-аккаунт lionsoul-org (душа льва)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Ip2region (2.0 - xdb) — это офлайн-фреймворк для управления IP-данными и база данных геопозиционирования, поддерживающая сегменты данных на уровне миллиардов и обеспечивающая производительность запросов на уровне 10 микросекунд. Предоставляет реализацию xDB-движка управления данными для множества основных языков программирования. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/lionsoul-ip2region.git
git@api.gitlife.ru:oschina-mirror/lionsoul-ip2region.git
oschina-mirror
lionsoul-ip2region
lionsoul-ip2region
master