2011-07-19 4 views
1

Я пытаюсь выяснить, как я могу получить город и состояние того, где находится пользователь. Как я могу это сделать? Должен ли я использовать JavaScript, PHP?Как я могу получить местоположение пользователя?

+2

возможно дубликат [Как узнать расположение веб-пользователя?] (Http://stackoverflow.com/questions/4026786/how-to-learn-location-of-the-web-user) – Pointy

+3

Просто спросите их :) – Paul

ответ

1

Обычно я использую ipinfodb для PHP, где вы получаете информацию о пользователе на основе IP. Я нахожусь в Швеции, и я считаю это очень точным даже здесь. Хотя всегда существует проблема, когда интернет-провайдеры скрывают местоположение своих клиентов, но это не имеет никакого отношения к точности API.

0

Чтобы найти пользователя, вам необходимо использовать javascript geolocation API, а затем сделать вызов AJAX на PHP или другой серверный скрипт для хранения информации о местоположении.

+0

Интересно, что я также заметил в первом абзаце этой статьи автор также содержит ссылку на статью, используя IP-адрес пользователя, чтобы найти их. – Rodaine

0

Возможно, PHP в случае, если вы хотите его сохранить или что-то в этом роде. Я нашел это на каком-то форуме после поиска в Google и изменил его. Я не уверен, насколько это точно, но он находит мое местоположение в течение часа.

<? 

    $ip = $_SERVER['REMOTE_ADDR']; 

    if (!empty($IP)) { 
     $location=file_get_contents('http://api.hostip.info/get_html.php?ip='.$ip); 

     list($country, $city) = explode("\n", $location); 
     list($country, $code) = explode(' (', $country); 
     list($city, $state) = explode(', ', $city); 
     $code = substr($code, 0, 2); 
     $country = ucfirst(strtolower(str_replace("Country: ", "", $country))); 
     $city = ucfirst(strtolower(str_replace("City: ", "", $city))); 
    } 

echo 'Country: '.$country.'<br />'; 
echo 'City: '.$city.'<br />'; 
echo 'State: '.$state.'<br />'; 
echo 'Country Code: '.$code.'<br />'; 

?> 

Не уверен, что это актуально.

+0

Это приблизительное значение для местоположения сообщенного IP-адреса, который может быть не совсем таким же, как местоположение человека, использующего компьютер (так что кто-то, проходящий через прокси-сервер из удаленного места, может быть очень далек от IP-адрес). – Pointy

4

Зависит от того, насколько кросс-платформой вы хотите быть. В HTML5 есть Geolocation api. Я бы рекомендовал использовать это, если вам не нужно поддерживать все браузеры IE и ищете решение HTML5.

Отредактировано для добавления более developer friendly link.

+0

+1 для геолокации, но вы можете, конечно, вернуться к чему-то вроде [geoip] maxmind (http://www.maxmind.com/app/geolitecity), если функция недоступна. – Wrikken

0
$country=file_get_contents('http://api.hostip.info/get_html.php?ip='); 
echo $country; 

// Reformat the data returned (Keep only country and country abbr.) 
$only_country=explode (" ", $country); 

echo "Country : ".$only_country[1]." ".substr($only_country[2],0,4); 
Смежные вопросы