Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

php 获取客户端ip

作者:冷视天下   发布日期:2025-07-15   浏览:2

<?php
function get_client_ip() {
    $ip = '';
    if (isset($_SERVER['HTTP_CLIENT_IP'])) {
        // 获取从客户端传递过来的真实IP地址
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        // 代理服务器可能会设置这个头信息,取第一个非unknown的IP
        $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
        foreach ($ips as $ip) {
            $ip = trim($ip);
            if ($ip != 'unknown') {
                break;
            }
        }
    } elseif (isset($_SERVER['REMOTE_ADDR'])) {
        // 直接获取客户端的IP地址
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}

// 调用函数并输出客户端IP
echo get_client_ip();
?>

解释说明:

  1. $_SERVER['HTTP_CLIENT_IP']:这是客户端直接传递的真实IP地址。如果客户端通过代理服务器访问,这个值可能是空的。
  2. $_SERVER['HTTP_X_FORWARDED_FOR']:当客户端通过代理服务器访问时,代理服务器会在请求头中添加这个字段,记录客户端的真实IP地址。我们通过分割逗号分隔的多个IP地址,找到第一个非unknown的IP作为客户端的真实IP。
  3. $_SERVER['REMOTE_ADDR']:这是最直接的方式,获取客户端的IP地址。如果没有经过代理服务器,这个值就是客户端的真实IP。

通过这种方式,我们可以尽可能准确地获取客户端的真实IP地址。

上一篇:php 去除html标签

下一篇:php curl 上传文件

大家都在看

php session用法

phpisset函数

php后端

php爬虫框架

php读取csv文件

php 三元表达式

php文件加密

php 拆分字符串

php pcntl

php ||

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站