API определения местоположения по IP-адресу

Описание

Запрос к API возвращает IATA-код, название ближайшего от пользователя города и другую информацию по переданному IP-адресу.

Запрос

http://www.travelpayouts.com/whereami?locale=ru&ip=185.127.225.123

Параметры запроса

  • locale — язык, на котором возвращается название города (доступны все основные языки. Полный список может посмотреть в статье Список поддерживаемых языков.  По умолчанию установлен русский);
  • ip — ip-aдрес пользователя (поддерживаются IPv4 и IPv6 типы адресов).

Ответ

iata: "MOW"
name: "Москва"
country_name: "Россия"
country_code: "RU"
coordinates: "37.617634:55.755787"
accuracy: "city"

Параметры ответа

  • iata — код города;
  • name — название города;
  • country_name — название страны;
  • country_code — код страны;
  • coordinates — координаты города в формате долгота:широта;
  • accuracy — точность определения местоположения. Показывает, насколько можно доверять возвращённому городу:
    - city — город определён по IP-адресу;
    - nearest_city — город из базы IP нам неизвестен, возвращён ближайший к координатам пользователя город с аэропортом (в радиусе до 1000 км);
    - country — по IP известна только страна, возвращена её столица;
    - default — местоположение определить не удалось, возвращён самый популярный город для указанного языка.

Запрос всегда возвращает город, даже если определить местоположение не удалось, поэтому перед тем, как подставлять его в форму поиска, проверяйте accuracy.

Значениям city и nearest_city можно доверять: местоположение пользователя известно по IP. Значения country и default означают, что город — это запасной вариант, а не место, где находится пользователь: так бывает с IP-адресами дата-центров, VPN и мобильных операторов. В этих случаях лучше оставить поле поиска пустым и дать пользователю выбрать город самому.