PHP 如何获取IP地址

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

流程图:

上述程序的流程图如下所示。

PHP 如何获取IP地址

获取网站的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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程