PHP 如何获取IP地址
很多时候我们需要获取访问者的IP地址,以完成不同的目的。 在PHP中,获取IP地址非常简单。PHP提供了$_SERVER
变量来轻松获得用户的IP地址。 我们可以为了安全目的追踪访问者在网站上的活动,或者我们可以知道谁在使用我的网站等等。
在PHP中,收集访问者IP地址的最简单方法是使用REMOTE_ADDR。将’REMOTE_ADDR’传递给PHP的$_SERVER
变量。它将返回当前查看网页的访问者的IP地址。
注意:我们可以在网页上显示这个IP地址,也可以将其存储在数据库中,用于许多其他目的,例如 – 用于安全性、将访问者重定向到另一个网站,阻止/禁止访问者。
获取网站的IP地址
$_SERVER['REMOTE_ADDR']
- 它返回当前访问网页的用户的IP地址。
示例
<?php
echo 'User IP Address - '.$_SERVER['REMOTE_ADDR'];
?>
输出
User IP Address - ::1
但是有时候REMOTE_ADDR并不能返回客户端的IP地址,主要原因是使用了代理。在这种情况下,我们可以尝试使用另一种方法来获取用户的真实IP地址。
<?php
function getIPAddress() {
//whether ip is from the share internet
if(!empty(_SERVER['HTTP_CLIENT_IP'])) {ip = _SERVER['HTTP_CLIENT_IP'];
}
//whether ip is from the proxy
elseif (!empty(_SERVER['HTTP_X_FORWARDED_FOR'])) {
ip =_SERVER['HTTP_X_FORWARDED_FOR'];
}
//whether ip is from the remote address
else{
ip =_SERVER['REMOTE_ADDR'];
}
return ip;
}ip = getIPAddress();
echo 'User Real IP Address - '.$ip;
?>
输出
User IP Address - ::1
流程图:
上述程序的流程图如下所示。
获取网站的IP地址
我们还可以通过URL获取任何网站的IP地址。将网站的URL传递给gethostbyname()
函数。
示例
<?php
ip_address = gethostbyname("www.google.com");
echo "IP Address of Google is - ".ip_address;
echo "</br>";
ip_address = gethostbyname("www.javatpoint.com");
echo "IP Address of javaTpoint is - ".ip_address;
?>
输出
IP Address of Google is - 172.217.166.4
IP Address of javaTpoint is - 95.216.57.234