用PHP获取ISP的IP地址

时间:2014-09-12 11:30:02

标签: php ip-address php-5.3 php-5.4 php-5.5

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

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

问题是:可以通过php获取此ip 87.x.x.x吗?

3 个答案:

答案 0 :(得分:1)

是的,可以使用$_SERVER['REMOTE_ADDR']。唯一要做的事情是:在一些免费/非自由的虚拟主机上将你的脚本放在互联网上。

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

您的本地网络通过路由器连接到互联网。路由器连接2个网络,因此路由器方面你有2个ip地址:本地网络ip (176.x.x.x)和internet ip (87.x.x.x)。 根据网络服务器的位置,您将获得其中一个地址。

当你谷歌你的IP,你正在互联网上寻找它。放在互联网上的网络服务器将看到您的互联网IP地址。顺便说一句。您的本地网络IP由NAT伪装。

答案 1 :(得分: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;
}
?>

答案 2 :(得分:0)

使用以下功能获取客户端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;
}