【发布时间】:2020-12-12 06:53:20
【问题描述】:
我想获取我的用户的位置,但我不想使用第三方系统来做到这一点
所以我做了这个脚本
<?php
function getIPAddress() {
//whether ip is from the share internet
if(!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
//whether ip is from the proxy
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
//whether ip is from the remote address
else{
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
$ip = getIPAddress();
echo $ip;
?>
当我访问 http://localhost 时它会回显 ::1 然后当我连接到互联网并转到 http://192.168.43.104 它时会回显 192.168.43.104 我在网上看到 192.168.xxx.xxx 是公共 IP并且有数百万用户在使用 192.168.xxx.xxx ,并且无法从中获取我的访问者位置
我的问题是
- 真的不能用192.168.xxx.xxx来判断用户位置吗
- 如果上述脚本无法获取用户位置,我该怎么做
为了清楚起见,我只想要他们的 IP 地址,因为我需要第三方服务来将他们的 IP 地址更改为某个位置,所以我认为最好保留一个数字
编辑
目前在我的页面上它告诉我 192.168.43.104 但如果我用谷歌搜索“我的 ip”,我会得到 197.210.85.238 Your public IP address 是不是从我的公共 IP 地址可以获取我的位置
【问题讨论】:
-
你首先要明白 ip 不是一个能告诉你用户确切位置的魔法钥匙。
-
如果你真的想获取用户的位置,你应该使用 GeoIP。
标签: php geolocation location ip