使用 $_SERVER 变量

$_SERVER 变量提供了一种获取用户 IP 地址的简单有效的方法。
它包含一个数组,在 PHP 中提供与服务器和环境相关的信息。

让我们从最简单的方法开始:使用 $_SERVER['REMOTE_ADDR']。
它返回用户 IP 地址。
它可以通过以下方式运行:

echo 'User IP - '.$_SERVER['REMOTE_ADDR'];

但请注意,有时它可能会返回错误的用户 IP 地址。
原因是使用代理。

因此,在这种情况下,要获取用户的正确 IP 地址,建议这样做:

function getUserIpAddr(){
    if(!empty($_SERVER['HTTP_CLIENT_IP'])){
        //来自共享互联网的 ip
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    }elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
        //来自代理传递的 ip 
        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    }else{
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}
echo 'User Real IP - '.getUserIpAddr();
在 PHP 中如何获取客户端 IP 地址

通常,有必要收集客户端的 IP 地址以跟踪活动或者出于某些安全目的。

关于PHP 超全局变量

超全局变量是始终可以访问的变量,无论它们具有什么作用域。
它们也可以从任何类、函数访问,而无需做一些特殊的事情。

$_SERVER 也属于超级全局变量。
它能够保存有关路径、标题以及脚本位置的信息。
该数组内的实体由网络服务器生成。
还有其他超全局变量,例如 $GLOBALS、$_REQUEST、$_POST、$_GET、$_FILES、$_ENV、$_COOKIE 和 $_SESSION。

获取网站的IP地址

此外,可以通过 URL 接收任何网站的 IP 地址。
我们需要做的就是在 gethostbyname() 函数中传递网站 URL,如下所示:

. <?php  
. $ip_address = gethostbyname("www.google.com");  
. echo "google的ip地址是 - ".$ip_address;  
. echo "</br>";  
. $ip_address = gethostbyname("www.onitroad.com");  
. echo "onitroad的ip地址是 - ".$ip_address;  
. ?>
日期:2020-06-02 22:15:49 来源:oir作者:oir