Нужно определить город по IP-адресу в вашем приложении? Это практичный гайд для копирования — плюс оговорки, которые удержат вас от чрезмерного доверия данным о городе.

Самый быстрый способ

Вызовите API IP-геолокации и прочитайте поле city. С detectip.ai:

curl "https://detectip.ai/api/v1/verdict?token=TOKEN" \
  -H "X-API-Key: sk_live_..."

Ответ включает country, region, city, приблизительные координаты, часовой пояс и валюту. Получите бесплатный ключ, чтобы попробовать.

В коде

Python

import requests
r = requests.get("https://detectip.ai/api/v1/verdict",
    params={"token": token}, headers={"X-API-Key": KEY})
city = r.json().get("city")

JavaScript

const r = await fetch(
  "https://detectip.ai/api/v1/verdict?token=" + token,
  { headers: { "X-API-Key": KEY } });
const { city } = await r.json();

Важные оговорки

Серверная сторона против клиентской

Делайте запрос на сервере, чтобы контролировать API-ключ и логировать ответственно. IP посетителя доступен на соединении; у браузера ничего спрашивать не нужно.

FAQ

Почему город иногда неверен? IP идёт через региональный узел, пользователь на VPN, или блок недавно переназначили.

Можно ли получить почтовый индекс? Некоторые тарифы открывают более детальные поля; см. тарифы.