【发布时间】:2018-03-30 11:13:02
【问题描述】:
我正在尝试从使用的 IP 地址获取位置。有很多关于如何做到这一点的主题。我真的like this one,它有效并且非常清晰。 示例中使用的 IP 地址找到了德国某处的位置,但是当我使用我的 IP 地址 (192.168.0.7) 时,一切都返回未知。当站点仅在线时,我不会使用我的 IP 地址,我会使用 PHP 查找用户的 IP 地址。
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'];
}
$ip = '192.168.0.7'; //replace with my IP address
我也遇到过this site,它可以找到我的 IP 地址,除了数字不同之外,它非常准确。 2.126.219.101
有没有一种方法可以测试我在 localhost 上的内容,以使用上述方法获取我的 IP 地址,或者我的 IP 地址有什么问题。
【问题讨论】:
-
192.168.* 是一个私有 IP 地址。您无法对其进行地理定位,这毫无意义(现在全世界可能有数千台计算机拥有该确切 IP)。使用公共 IP 地址。
-
理论上如此 if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } 其他 { $ip = $_SERVER['REMOTE_ADDR']; } 将在线工作