Документация по API для разработчиков
Небольшой и предсказуемый JSON API. Конечные точки проксируются через наш серверный уровень абстракции провайдера с нормализацией ответов, легким кэшированием и корректной обработкой ошибок.
Конечные точки (Endpoints)
GET /api/my-ip
Возвращает данные геолокации и сети для публичного IP-адреса отправителя запроса, каким его видит сервер.
curl https://ipcheck.mubarokah.com/api/my-ip
GET /api/lookup?q=<ip|domain>
Поиск любого IPv4, IPv6 или домена. Схемы (http/https) и пути отклоняются.
curl "https://ipcheck.mubarokah.com/api/lookup?q=8.8.8.8"
POST /api/bulk
Пакетный поиск (до 50 за один запрос). Параллельные запросы ограничиваются на стороне сервера.
curl -X POST -H 'content-type: application/json' \
-d '{"queries":["8.8.8.8","1.1.1.1","example.com"]}' \
https://ipcheck.mubarokah.com/api/bulkСтруктура ответа
{
"ok": true,
"query": "8.8.8.8",
"ip": "8.8.8.8",
"ipVersion": "IPv4",
"location": {
"continent": "North America",
"country": "United States",
"countryCode": "US",
"regionName": "Virginia",
"city": "Ashburn",
"zip": "20149",
"lat": 39.0438,
"lon": -77.4874,
"timezone": "America/New_York",
"utcOffsetSeconds": -14400,
"currency": "USD"
},
"network": {
"isp": "Google LLC",
"org": "Google Public DNS",
"as": "AS15169 Google LLC",
"asname": "GOOGLE",
"reverse": "dns.google"
},
"flags": { "mobile": false, "proxy": false, "hosting": true }
}Ошибки
invalid_query— введены недействительные IP-адрес или домен.rate_limited— достигнут лимит запросов вышестоящего провайдера.provider_unreachable— вышестоящий сервер отключен от сети.
Лимиты запросов и кэширование
Ответы кэшируются на стороне сервера на 10 минут для каждого запроса. Бесплатный публичный тариф вышестоящего провайдера ограничен по частоте запросов и предназначен для некоммерческого использования. Для производственного трафика мы рекомендуем настроить коммерческого провайдера с помощью переменных среды, описанных ниже.
Абстракция провайдера
Установите следующие переменные среды на сервере. Конфиденциальные ключи никогда не передаются в браузер.
IP_PROVIDER=ip-api # or ip-api-pro IP_API_KEY=... # required for pro IP_API_BASE=http://ip-api.com
Примечания
- Геолокация по IP-адресу является приблизительной и в лучшем случае точна до уровня города или мегаполиса.
- Локальные и зарезервированные диапазоны IP-адресов не могут быть геолоцированы.
- API не записывает содержимое запросов в журнал, кроме того, что необходимо для кэширования.
