Довольно недорогой вариант - использовать API ipdata.co , бесплатно до 1500 запросов в день.
В этом ответе используется «тестовый» ключ API, которыйочень ограничен и предназначен только для тестирования нескольких звонков. Зарегистрируйтесь для получения бесплатного ключа API и получите до 1500 запросов в день на разработку.
$.get("https://api.ipdata.co?api-key=test", function (response) {
$("#ip").html("IP: " + response.ip);
$("#city").html(response.city + ", " + response.region);
$("#response").html(JSON.stringify(response, null, 4));
}, "jsonp");
ipdata.co - IP geolocation API