Совсем недавно нужно было решить задачу, связанную с показом различного контента для посетителей с разных стран. Решил ее при помощи API Яндекса, но какая-то «костыльность» решения не давала мне покоя.
И вот я нашел до ужаса простое решение этой задачи, которым хочу поделиться.
Для определения местоположения будем использовать сторонний ресурс — http://ipinfo.io/. Обращаясь к нему мы можем получить детальную информацию о нашем расположении вот в очень удобном виде.
Бесценной особенностью является возможность получения информации и на back, и на front-частях.
Пример обращения на php:
$ip = $_SERVER['REMOTE_ADDR'];
$details = json_decode(file_get_contents("http://ipinfo.io/{$ip}/json"));
echo $details->city;
Пример обращения на javascript (jQuery):
$.get("http://ipinfo.io", function(response) {
console.log(response.city);
}, "jsonp");
Решение нашел здесь и тут же автор предлагает более детальный и «живой» пример работы — http://jsfiddle.net/zK5FN/2/.