请选择 进入手机版 | 继续访问电脑版

php中文网 | cnphp.com

 找回密码
 立即注册
搜索
热搜: 视频教程
查看: 578|回复: 0

php获取客户端真实ip地址的三种方法

[复制链接]

155

主题

157

帖子

808

积分

管理员

Rank: 9Rank: 9Rank: 9

UID
1
威望
0
金钱
576
贡献
0
注册时间
2021-4-14
最后登录
2021-10-24
在线时间
57 小时
QQ
发表于 2021-8-20 11:44:12 | 显示全部楼层 |阅读模式
function get_real_ip(){ 
        $ip=false;
        if(!empty($_SERVER['HTTP_CLIENT_IP'])){
                $ip=$_SERVER['HTTP_CLIENT_IP'];
        }
        if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
                $ips=explode (', ', $_SERVER['HTTP_X_FORWARDED_FOR']);
                if($ip){ array_unshift($ips, $ip); $ip=FALSE; }
                for ($i=0; $i < count($ips); $i++){
                        if(!eregi ('^(10│172.16│192.168).', $ips[$i])){
                                $ip=$ips[$i];
                                break;
                        }
                }
        }
        return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
function get_real_ip(){
    static $realip;
    if(isset($_SERVER)){
        if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
            $realip=$_SERVER['HTTP_X_FORWARDED_FOR'];
        }else if(isset($_SERVER['HTTP_CLIENT_IP'])){
            $realip=$_SERVER['HTTP_CLIENT_IP'];
        }else{
            $realip=$_SERVER['REMOTE_ADDR'];
        }
    }else{
        if(getenv('HTTP_X_FORWARDED_FOR')){
            $realip=getenv('HTTP_X_FORWARDED_FOR');
        }else if(getenv('HTTP_CLIENT_IP')){
            $realip=getenv('HTTP_CLIENT_IP');
        }else{
            $realip=getenv('REMOTE_ADDR');
        }
    }
    return $realip;
}
// 获取IP地址(摘自discuz)
function getIp(){
        $ip='未知IP';
        if(!empty($_SERVER['HTTP_CLIENT_IP'])){
                return is_ip($_SERVER['HTTP_CLIENT_IP'])?$_SERVER['HTTP_CLIENT_IP']:$ip;
        }elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
                return is_ip($_SERVER['HTTP_X_FORWARDED_FOR'])?$_SERVER['HTTP_X_FORWARDED_FOR']:$ip;
        }else{
                return is_ip($_SERVER['REMOTE_ADDR'])?$_SERVER['REMOTE_ADDR']:$ip;
        }
}
function is_ip($str){
        $ip=explode('.',$str);
        for($i=0;$i<count($ip);$i++){  
                if($ip[$i]>255){  
                        return false;  
                }  
        }  
        return preg_match('/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/',$str);  
}



PHP中文网 免责声明
1.本站资源均来源于互联网,如有侵权请联系站长cnwefocus@163.com!将第一时间删除。
2.资源仅供学习参考请勿商用或其它非法用途,否则一切后果用户自负。
3.下载本站资源后请24小时内删除。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|php中文网 | cnphp.com

GMT+8, 2021-10-28 03:18 , Processed in 0.023813 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

申明:本站所有资源皆搜集自网络,相关版权归版权持有人所有,如有侵权,请电邮(cnwefocus@163.com)告之,本站会尽快删除。

快速回复 返回顶部 返回列表