如何获取用户的位置?

时间:2011-07-19 18:47:57

标签: php javascript html5 geolocation location

我正在试图弄清楚如何获得用户所在城市和状态。我怎样才能做到这一点?我应该使用JavaScript吗?

5 个答案:

答案 0 :(得分:4)

取决于您希望跨平台的方式。在HTML5中,有Geolocation api。如果您不需要支持所有IE浏览器,并且正在寻找HTML5解决方案,我建议您使用它。

已编辑添加更多developer friendly link

答案 1 :(得分:1)

我通常在PHP中使用ipinfodb,您可以在其中获取基于IP的用户信息。我位于瑞典,即使在这里我也觉得非常准确。虽然ISP隐藏其客户位置时总是存在问题,但它与API准确性无关。

答案 2 :(得分:0)

您需要使用javascript geolocation API找到用户,然后对PHP或其他服务器端脚本进行AJAX调用以存储位置信息。

答案 3 :(得分:0)

可能是PHP,以防你想要存储它或什么的。我在谷歌搜索后在某个论坛上发现了这个并修改了它。我不确定它有多准确,但是它在一小时的车程内找到了我的位置。

<?

    $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 />';

?>

不确定它是否是最新的。

答案 4 :(得分: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);