zoukankan      html  css  js  c++  java
  • php 获取客户端ip

    方法一:(c)

     1 function get_ip(){
     2     $ip=false;
     3     if(!empty($_SERVER['HTTP_CLIENT_IP'])){
     4         $ip=$_SERVER['HTTP_CLIENT_IP'];
     5     }
     6     if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
     7         $ips=explode (', ', $_SERVER['HTTP_X_FORWARDED_FOR']);
     8         if($ip){ array_unshift($ips, $ip); $ip=FALSE; }
     9         for ($i=0; $i < count($ips); $i++){
    10             if(!preg_match('^(10│172.16│192.168).', $ips[$i])){
    11                 $ip=$ips[$i];
    12                 break;
    13             }
    14         }
    15     }
    16     return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
    17 }

    方法二:

    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);
    }

    方法 三:

     1 function get_ip(){
     2     static $realip;
     3     if(isset($_SERVER)){
     4         if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
     5             $realip=$_SERVER['HTTP_X_FORWARDED_FOR'];
     6         }else if(isset($_SERVER['HTTP_CLIENT_IP'])){
     7             $realip=$_SERVER['HTTP_CLIENT_IP'];
     8         }else{
     9             $realip=$_SERVER['REMOTE_ADDR'];
    10         }
    11     }else{
    12         if(getenv('HTTP_X_FORWARDED_FOR')){
    13             $realip=getenv('HTTP_X_FORWARDED_FOR');
    14         }else if(getenv('HTTP_CLIENT_IP')){
    15             $realip=getenv('HTTP_CLIENT_IP');
    16         }else{
    17             $realip=getenv('REMOTE_ADDR');
    18         }
    19     }
    20     return $realip;
    21 }
  • 相关阅读:
    ssm批量删除
    java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp
    springMVC中的日期格式的转化
    常用(二)
    ssm上传文件
    redis命令
    redis的下载与安装(linux版)
    解决Maven项目pom.xml文件报xxx argetclassesMETA-INFMANIFEST.MF (系统找不到指定的路径)问题
    flex布局元素操作详情
    彩色小球的重现以及下雪效果的实现
  • 原文地址:https://www.cnblogs.com/wsybky/p/8880578.html
Copyright © 2011-2022 走看看