Требует лицензию на модули address и ip.

✔️ Определяет город по IP-адресу в России. Использует IP-адрес клиента, значение из параметра ip или заголовок X-Forwarded-For.

✔️ Поддерживает как IPv4, так и IPv6 адреса.

✔️ Возвращает детальную информацию о городе, в том числе почтовый индекс.

Запрос

POST (21.1+):

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{ "ip": "185.65.148.8", "language": "ru" }' \
  http://ВАШ_СЕРВЕР:ПОРТ/suggestions/api/4_1/rs/iplocate/address

GET:

curl -X GET \
  -H "Accept: application/json" \
  http://ВАШ_СЕРВЕР:ПОРТ/suggestions/api/4_1/rs/iplocate/address?ip=185.65.148.8
curl -X GET \
  -H "Accept: application/json" \
  http://ВАШ_СЕРВЕР:ПОРТ/suggestions/api/4_1/rs/detectAddressByIp?ip=185.65.148.8

Заголовки

ЗаголовокОписание

Content-Type

Тип данных в запросе: application/json или application/xml

Accept

Тип данных в ответе: application/json или application/xml

Authorization

API-ключ в формате: Token ВАШ_КЛЮЧ

Только для пользователей подсказок DaData.ru

Параметры

ПараметрОбязательный?Описание
ipнетIP-адрес. Если не указан, используется IP-адрес из HTTP-запроса
language
нетЯзык отображения адреса в результатах поиска (en/ru) 20.3+


Ответ (19.1+)

Объект вида:

{
    "location": {
        "value": "г Москва",
        "unrestricted_value": "г Москва",
        "data": { ... }
    }
}

Где location — это объект адреса .

Если местоположение определить не удалось, то location = null:

{
    "location": null
}

Объект вида:

{
    "location": {
        "value": "185.65.148.8",
        "unrestricted_value": null,
        "data": { ... }
    }
}

Где location.value — это IP-адрес клиента, а location.data заполнен аналогично полю data в объекте адреса.


Алгоритм выбора IP-адреса из параметров запроса

ЕСЛИ IP указан в параметре ip
ТО использовать его
ИНАЧЕ
   ЕСЛИ IP указан в HTTP-заголовке X-Forwarded-For
   ТО использовать его
   ИНАЧЕ вернуть IP сокета соединения

Местоположение определяется только для российских адресов.

  • No labels