如果我用 php 编写,$_SERVER['REMOTE_ADDR']
我会得到我的 ip:176.x.x.x
这个地址与我在 cmd 中写入的 ipconfig 中得到的地址相同。
现在,如果我在 google 中写,找到我的 ip,我会得到另一个 ip:87.x.x.x
问题是:87.x.x.x
有可能用php得到这个ip吗?
如果我用 php 编写,$_SERVER['REMOTE_ADDR']
我会得到我的 ip:176.x.x.x
这个地址与我在 cmd 中写入的 ipconfig 中得到的地址相同。
现在,如果我在 google 中写,找到我的 ip,我会得到另一个 ip:87.x.x.x
问题是:87.x.x.x
有可能用php得到这个ip吗?
是的,可以通过使用$_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 伪装。
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;
}
?>
使用以下函数获取客户端 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;
}