Вы пробовали какой-либо API геолокации IP для него?Хотя точность IP-геолокации не всегда точна, так как эти сервисы по умолчанию находятся в центре города.Вы можете проверить ipgeolocation.io , который предоставляет географические координаты для программного использования.Вот пример ответа при вызове в браузере пользователя.
curl 'https://api.ipgeolocation.io/ipgeo?apiKey=API_KEY'
{
"ip": "33.33.33.33",
"continent_code": "NA",
"continent_name": "North America",
"country_code2": "US",
"country_code3": "USA",
"country_name": "United States",
"country_capital": "Washington",
"state_prov": "Ohio",
"district": "Franklin County",
"city": "Columbus",
"zipcode": "43218",
"latitude": "39.9747",
"longitude": "-82.8948",
"is_eu": false,
"calling_code": "+1",
"country_tld": ".us",
"languages": "en-US,es-US,haw,fr",
"country_flag": "https://ipgeolocation.io/static/flags/us_64.png",
"isp": "DoD Network Information Center",
"connection_type": "wired",
"organization": "DoD Network Information Center",
"geoname_id": "4510575",
"currency": {
"name": "Dollar",
"code": "USD"
},
"time_zone": {
"name": "America/New_York",
"offset": "-4",
"is_dst": true,
"current_time": "2018-05-14 15:54:13.975-0400"
}
}