https://github.com/ilyhalight/ip-geolocation
A library for free (and not only free) use of the ip geolocation APIs
https://github.com/ilyhalight/ip-geolocation
free geolocation ip ip2geo lookup
Last synced: 10 months ago
JSON representation
A library for free (and not only free) use of the ip geolocation APIs
- Host: GitHub
- URL: https://github.com/ilyhalight/ip-geolocation
- Owner: ilyhalight
- License: mit
- Created: 2024-11-07T10:31:17.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-12-17T09:40:40.000Z (over 1 year ago)
- Last Synced: 2024-12-24T19:19:30.224Z (over 1 year ago)
- Topics: free, geolocation, ip, ip2geo, lookup
- Language: TypeScript
- Homepage: https://ilyhalight.github.io/ip-geolocation/
- Size: 155 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README-RU.md
- Changelog: changelog.md
- License: LICENSE
Awesome Lists containing this project
README
# IP Geolocation
[](https://github.com/ilyhalight/ip-geolocation/actions/workflows/ci.yml)
[](https://www.npmjs.com/package/@toil/ip-geolocation)
[](README.md)
[](README-RU.md)
Библиотека для бесплатного (и не только бесплатного) использования IP Geolocation APIs, которая поддерживает работу с JavaScript, TypeScript, а также имеет встроенные типы для Typebox.
## Установка
Установка с Bun:
```bash
bun add @toil/ip-geolocation
```
Установка с Node:
```bash
npm install @toil/ip-geolocation
```
## Начало работы
Чтобы начать работу с API, вам необходимо создать IPGeolocation клиент. Это можно сделать, воспользовавшись приведенным ниже кодом.
```ts
const client = new IPGeolocationClient({
service: IPGeolocationService.freeipapi,
});
const result = await client.lookup("103.21.244.0");
```
Вы можете увидеть больше примеров кода [здесь](https://github.com/ilyhalight/ip-geolocation/tree/main/examples)
## Доступные сервисы
В некоторых сервисах передача зарезервированных диапазонов айпи адресов может вызывать ошибку - это нормально.
Если вам не хватает каких-то данных в методе lookup, и они должны быть у сервиса, рекомендуется рассмотреть использование провайдера напрямую, используя метод rawLookup
| Статус | Сервис | Лимиты | Функции |
| ------ | ----------------------------------- | ---------- | ------------------------------------- |
| ✅ | [FreeIPAPI](https://freeipapi.com/) | 60 req/min | [подробнее](SERVICES-RU.md#freeipapi) |
| ✅ | [IPAPICom](https://ip-api.com) | 45 req/min | [подробнее](SERVICES-RU.md#ipapicom) |
Более подробная информация о поддерживаемых сервисах доступа [тут](SERVICES-RU.md)
## Сборка
Для сборки необходимо наличие:
- [Bun](https://bun.sh/)
Не забудьте установить зависимости:
```bash
bun install
```
#### Обычная сборка
Сборка всего пакета:
```bash
bun build:bun
```
#### Сборка TypeBox типов
Вы можете воспользоваться данным вариантом сборки, если вы хотите собрать, только, типы для TypeBox:
```bash
bun build:typebox
```
## Тесты
Библиотека имеет минимальное покрытие тестами для проверки ее работоспособности.
Запустить тесты:
```bash
bun test
```