使用 $_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();
通常,有必要收集客户端的 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