我正在试图弄清楚如何获得用户所在城市和状态。我怎样才能做到这一点?我应该使用JavaScript吗?
答案 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);