PHP判断ip地址是否合法

本文介绍了如何使用PHP来获取客户端的真实IP地址,并提供了两种验证IP地址格式正确性的方法。第一部分详细展示了通过检查服务器配置或者使用环境变量来确定IP地址的具体实现。第二部分则提供了两个不同的函数用于验证IP地址的有效性。

1.获取真正ip地址

function get_ip(){
    //判断服务器是否允许$_SERVER
    if(isset($_SERVER)){
        if(isset($_SERVER[HTTP_X_FORWARDED_FOR])){
            $realip = $_SERVER[HTTP_X_FORWARDED_FOR];
        }elseif(isset($_SERVER[HTTP_CLIENT_IP])) {
            $realip = $_SERVER[HTTP_CLIENT_IP];
        }else{
            $realip = $_SERVER[REMOTE_ADDR];
        }
    }else{
        //不允许就使用getenv获取
        if(getenv("HTTP_X_FORWARDED_FOR")){
            $realip = getenv( "HTTP_X_FORWARDED_FOR");
        }elseif(getenv("HTTP_CLIENT_IP")) {
            $realip = getenv("HTTP_CLIENT_IP");
        }else{
            $realip = getenv("REMOTE_ADDR");
        }
    }
 
    return $realip;
}

 2.验证ip是否合理两种方法

   # 一

 /**
     * 判断IP输入是否合法
     * @param type $ip IP地址
     * @return int 等于1是输入合法  0 输入不合法
     */
    public static function isIp($ip) {
        if (preg_match('/^((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1 -9]?\d))))$/', $ip)) {
            return 1;
        } else {
            return 0;
        }
    }

   # 二

 

    function checkIp($ip)
    {
        $arr = explode('.',$ip);
        if(count($arr) != 4){
            return false;
        }else{
            for($i = 0;$i < 4;$i++){
                if(($arr[$i] <'0') || ($arr[$i] > '255')){
                    return false;
                }
            }
        }
        return true;
    }

 

转载于:https://www.cnblogs.com/gyrgyr/p/9455866.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值