0

如果我用 php 编写,$_SERVER['REMOTE_ADDR']我会得到我的 ip:176.x.x.x这个地址与我在 cmd 中写入的 ipconfig 中得到的地址相同。

现在,如果我在 google 中写,找到我的 ip,我会得到另一个 ip:87.x.x.x

问题是:87.x.x.x有可能用php得到这个ip吗?

4

3 回答 3

1

是的,可以通过使用$_SERVER['REMOTE_ADDR']. 唯一要做的就是:将您的脚本放在互联网上的一些免费/非免费虚拟主机上。

你得到你的 ip:176.x.x.x因为这个 ip 是你在本地网络中的 ip,并且你在本地网络中的计算机(或其他计算机)上运行 webserver。

您的本地网络通过路由器连接到互联网。路由器连接 2 个网络,因此在路由器上您有 2 个 ip 地址:本地网络 ip(176.x.x.x)和互联网 ip (87.x.x.x)。根据网络服务器的位置,您将获得这些地址之一。

当你用谷歌搜索你的 ip 时,你正在互联网上寻找它。放置在互联网上的网络服务器将看到您的互联网 IP 地址。顺便提一句。您的本地网络 ip 被 NAT 伪装。

于 2014-09-12T11:47:37.417 回答
0

geoip_isp_by_name() 函数将返回分配 IP 的 Internet 服务提供商 (ISP) 的名称

<?php
$isp = geoip_isp_by_name('www.example.com');
if ($isp) {
echo 'This host IP is from ISP: ' . $isp;
}
?>
于 2014-09-12T11:53:03.293 回答
-1

使用以下函数获取客户端 IP。希望它会起作用

function getClientIP() {
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}
于 2014-09-12T12:31:42.063 回答