Определение IPv4
Местоположение, часовой пояс и сведения о сети для адреса IPv4. Не указывайте адрес, чтобы определить вызывающую сторону.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
ipнеобязательный | строка | Адрес IPv4 в точечной записи. По умолчанию: адрес, с которого пришёл запрос. |
ipsнеобязательный | строка | Адреса через запятую, до 100, для пакетного запроса. Возвращает массив results в том же порядке. Каждый адрес засчитывается как один запрос. |
langнеобязательный | строка | Код ISO 639-1 для названий стран, регионов и городов. По умолчанию en. |
keyнеобязательный | строка | API-ключ, если он не передан в заголовке. |
Пример
$ curl -H "X-API-Key: YOUR_KEY" "https://api.mygeocode.com/v1/ipv4?ip=1.1.1.1"// In a browser, with no ip parameter, this returns the visitor's own address
const geo = await (await fetch("https://api.mygeocode.com/v1/ipv4", { headers: { "X-API-Key": "YOUR_KEY" } })).json();
console.log(geo.country_code, geo.timezone);import requests
geo = requests.get("https://api.mygeocode.com/v1/ipv4", params={"ip": "1.1.1.1"}, headers={"X-API-Key": "YOUR_KEY"}, timeout=5).json()
print(geo["country_code"], geo["org"], geo["is_datacenter"]){
"status": "ok",
"ip": "1.0.164.165",
"version": 4,
"found": true,
"prefix": "1.0.164.0/24",
"country": "Thailand",
"country_code": "TH",
"continent": "Asia",
"continent_code": "AS",
"region": "Krung Thep Maha Nakhon",
"region_code": null,
"city": "Bangkok",
"postcode": "10200",
"lat": 13.749976,
"lon": 100.516819,
"timezone": "Asia/Bangkok",
"utc_offset": "+07:00",
"utc_offset_seconds": 25200,
"is_eu": false,
"asn": 23969,
"as_name": "TOT Public Company Limited",
"org": "TOT Public Company Limited",
"usage_type": "Eyeball",
"registry": "apnic",
"allocated": "2008-10-22",
"tags": ["dsl"],
"is_anycast": false,
"is_satellite": false,
"is_datacenter": false,
"is_proxy": false,
"is_vpn_provider": false,
"is_tor": false,
"is_private": false,
"abuse_email": "abuse@totisp.net",
"threat": {
"listed": true,
"score": 90,
"source_count": 2,
"categories": ["abuse", "attacker"],
"is_tor": false,
"is_tor_exit": false,
"is_bogon": false,
"listings": [
{ "category": "abuse", "confidence": 100, "recency_days": 1 },
{ "category": "attacker", "confidence": null, "recency_days": null }
]
},
"updated_at": "2026-09-18 06:53:39"
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
ip, version | строка, целое число | Запрошенный адрес в канонической форме и 4 или 6. |
found | логическое значение | False, если ни одна сеть не покрывает адрес; поля местоположения тогда равны null. |
prefix | строка | Самая узкая сеть, содержащая адрес, в формате CIDR. |
country, country_code | строка | Название страны и её код ISO 3166-1 alpha-2 заглавными буквами. |
continent, continent_code | строка | Название континента и двухбуквенный код. |
region, region_code | строка | Административная единица первого уровня и её краткий код. Код заполняется для США, Канады и Австралии; для остальных стран он есть только там, где его содержит набор данных. |
city, postcode | строка | Наилучшая оценка; null, если неизвестно. |
lat, lon | число | Центр самой узкой известной области. |
elevation_m | число или null | Высота над средним уровнем моря в этой точке в метрах, по той же сетке 15 угловых секунд, что и у эндпоинта высот. Отрицательная над морским дном. |
timezone, utc_offset, utc_offset_seconds | строка, строка, число | Зона IANA, действующее сейчас смещение в виде +HH:MM и то же смещение в секундах. Зона определяется по координатам и границам часовых поясов, поэтому всегда согласуется с lat и lon. |
is_eu | логическое значение | Страна входит в Европейский союз. |
asn, as_name, org | целое число, строка | Номер автономной системы, её название и организация, которой она принадлежит. |
usage_type | строка | Тип оператора: Eyeball (провайдер для частных абонентов), Carrier, Content, Hosting, Enterprise, Education, NSP или unknown. |
registry, allocated | строка | Региональный регистратор, выделивший ASN, и дата выделения. |
tags | массив | Метки уровня оператора, например dsl, cdn, vpsh (хостинг VPS), vpn, satnet. Они описывают оператора сети, а не отдельный адрес. |
is_anycast, is_satellite | логическое значение | Префикс является anycast; оператор является спутниковой сетью. |
is_datacenter | логическое значение | Хостинговая или контентная сеть. Считайте город ненадёжным и учитывайте, что трафик может быть автоматическим. |
is_proxy, is_tor | логическое значение | Данные по конкретному адресу о том, что он является ретранслятором или выходным узлом Tor либо значится в списках как прокси или эндпоинт VPN. |
is_vpn_provider | логическое значение | Оператор где-то в своей сети предоставляет услуги VPN или прокси (подсказка на уровне оператора, более слабая, чем is_proxy). |
is_private | логическое значение | Зарезервированный, частный или иной немаршрутизируемый адрес. Если true, ответ содержит только ip, version, is_private и reason. |
abuse_email | строка | Контакт для жалоб, зарегистрированный для сети. |
threat | объект | Репутация: listed, score от 0 до 100 (вес самой серьёзной жалобы с поправкой на давность старых), source_count (сколько независимых источников его перечисляют), categories, признаки Tor и bogon, а также отдельные записи listings с категорией, достоверностью и тем, сколько дней назад поступила каждая жалоба. |
updated_at | строка | Когда запись об этой сети последний раз обновлялась. |
Любая версия в одном вызове
GET /v1/ip принимает адрес IPv4 или IPv6 (или никакой, для вызывающей стороны) и возвращает ту же запись, что и эндпоинты для конкретной версии. Используйте его, если заранее не знаете, какой адрес вам передадут.
Примечания
- Anycast-адреса, такие как
1.1.1.1и8.8.8.8, обслуживаются из многих мест одновременно. Возвращается зарегистрированное местоположение, поэтому для нихis_datacenterравно true. - Вызывайте его со своего сервера, передавая адрес посетителя в
ip. Вызов безipвозвращает адрес, с которого пришёл запрос, а за прокси или CDN это адрес прокси. - Данные IP обновляются еженедельно. Разумное время кеширования составляет один день.
Тот же запрос в форматах других провайдеров
Если у вас уже есть код, написанный под одного из этих провайдеров, оставьте его: совместимый хост принимает тот же путь и те же параметры и отвечает в формате ответа этого провайдера, а за ним работает этот эндпоинт. См. как работают совместимые хосты.
| Провайдер | Хост | Путь |
|---|---|---|
| Geoapify | geoapify.mygeocode.com | /v1/ipinfo?ip=... |
| ip-api.com | ipapi.mygeocode.com | /json/{ip}/json//batch (POST, JSON array) |
| ipinfo.io | ipinfo.mygeocode.com | /{ip}/json/{ip}/json/{ip}/{field} |
| ipstack | ipstack.mygeocode.com | /{ip}/check/{ip},{ip},{ip} |
Ошибки
400 invalid_request, если ip не является корректным адресом IPv4, если на этот эндпоинт отправлен адрес IPv6 (используйте /v1/ipv6) или если в ips больше 100 записей.