本文概述
很多时候, 我们需要获得访问者的IP地址以用于不同的目的。在PHP中收集IP地址非常容易。 PHP提供了PHP $ _SERVER变量来轻松获取用户IP地址。为了安全起见, 我们可以跟踪访问者在网站上的活动, 或者我们可以知道谁在使用我的网站等等。
在PHP中收集访问者IP地址的最简单方法是REMOTE_ADDR。在PHP $ _SERVER变量中传递” REMOTE_ADDR”。它将返回当前正在查看网页的访问者的IP地址。
注意:我们可以在网页上显示此IP地址, 甚至可以出于很多其他目的将其存储在数据库中, 例如-为了安全起见, 将访问者重定向到另一个站点, 阻止/禁止访问者。
获取网站的IP地址
$ _SERVER [‘REMOTE_ADDR’]-返回当前正在访问网页的用户的IP地址。
例如
<?php
echo 'User IP Address - '.$_SERVER['REMOTE_ADDR'];
?>
输出
User IP Address - ::1
但是有时REMOTE_ADDR不会返回客户端的IP地址, 其主要原因是使用代理。在这种情况下, 我们将尝试另一种方法来获取PHP中用户的真实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地址
我们还可以通过其网址获取任何网站的IP地址。在gethostbyname()函数内传递网站的URL。
例如
<?php
$ip_address = gethostbyname("www.google.com");
echo "IP Address of Google is - ".$ip_address;
echo "</br>";
$ip_address = gethostbyname("www.srcmini02.com");
echo "IP Address of srcmini is - ".$ip_address;
?>
输出
IP Address of Google is - 172.217.166.4
IP Address of srcmini is - 95.216.57.234
评论前必须登录!
注册