使用PHP脚本如何确定访问者的IP地址

在PHP中,如何获取访问者的IP地址?

PHP获取IP地址的示例

<html>
<head>
<title>PHP获取IP地址</title>
</head>
<body>
<?php
 
    if (getenv('HTTP_X_FORWARDED_FOR')) {
        $pipaddress = getenv('HTTP_X_FORWARDED_FOR');
        $ipaddress = getenv('REMOTE_ADDR');
        echo "代理地址是: ".$pipaddress. "(via $ipaddress)" ;
    } else {
        $ipaddress = getenv('REMOTE_ADDR');
        echo "你的IP地址是: $ipaddress";
    }
?>
</body>
</html>

如果使用Apache/Nginx/Lighttpd安装和配置了GEOIP数据库,
可以使用下面的php代码获取访问者所在的国家/地区名称:

$country = getenv('GEOIP_COUNTRY_NAME');
   echo "你所在的国家/地区为: $country";

解决方案

PHP使用以下环境变量获取访问者IP地址:

  • REMOTE_ADDR获取远程客户端IP地址(没有使用代理)
  • HTTP_X_FORWARDED_FOR获取代理服务器IP地址(使用了代理)。
  • 使用PHP getenv()函数读取环境值。

语法为:

getenv('VAR-NAME-HERE')
日期:2019-11-20 08:52:02 来源:oir作者:oir