如何获取在我的网站上发布的用户的地理区域并将其存储在数据库中

时间:2012-06-26 10:40:48

标签: php mysql geolocation

我想知道的代码可以让我在访问我的网站时获得一个人的实际地址。现在我的代码是获取IP地址。 贝娄是我希望有人给我一个团队滚动我所拥有的代码

$ip=$_SERVER['REMOTE_ADDR'];

2 个答案:

答案 0 :(得分:1)

你需要获得ip。

在php中使用此代码段:

function GetUserIp() {
$ip = "";
if(isset($_SERVER)) {
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $ip=$_SERVER['HTTP_CLIENT_IP'];
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    } else { $ip=$_SERVER['REMOTE_ADDR'];
    }
} else { if ( getenv( 'HTTP_CLIENT_IP' ) ) {
    $ip = getenv( 'HTTP_CLIENT_IP' );
} elseif ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
    $ip = getenv( 'HTTP_X_FORWARDED_FOR' );
} else { $ip = getenv( 'REMOTE_ADDR' );
}
}
if(strstr($ip,',')){
    $ip = array_shift(explode(',',$ip));
}
return $ip;
}

一旦你获得了ip,就必须与列表ip-locations进行比较才能获得位置。获取此列表尝试谷歌它。

答案 1 :(得分:0)

使用

获取用户的IP地址
$ip = $_SERVER["REMOTE_ADDR"];

然后最好的方法是使用GeoIP Web服务。您还可以使用本地GeoIP数据库。 ip2location运行一个已经存在很长时间的服务,您可以找到最流行语言的api。

现代浏览器为您提供发送位置的选项,但这是可选的,您的用户可能经常禁用它。