zoukankan      html  css  js  c++  java
  • php获取客户端ip地址方法

     1 /**
     2      * 获取客户端IP地址
     3      * @param integer   $type 返回类型 0 返回IP地址 1 返回IPV4地址数字
     4      * @param boolean   $adv 是否进行高级模式获取(有可能被伪装)
     5      * @return mixed
     6      */
     7     public function ip($type = 0, $adv = true)
     8     {
     9         $type      = $type ? 1 : 0;
    10         static $ip = null;
    11         if (null !== $ip) {
    12             return $ip[$type];
    13         }
    14 
    15         $httpAgentIp = Config::get('http_agent_ip');
    16 
    17         if ($httpAgentIp && isset($_SERVER[$httpAgentIp])) {
    18             $ip = $_SERVER[$httpAgentIp];
    19         } elseif ($adv) {
    20             if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    21                 $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
    22                 $pos = array_search('unknown', $arr);
    23                 if (false !== $pos) {
    24                     unset($arr[$pos]);
    25                 }
    26                 $ip = trim(current($arr));
    27             } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
    28                 $ip = $_SERVER['HTTP_CLIENT_IP'];
    29             } elseif (isset($_SERVER['REMOTE_ADDR'])) {
    30                 $ip = $_SERVER['REMOTE_ADDR'];
    31             }
    32         } elseif (isset($_SERVER['REMOTE_ADDR'])) {
    33             $ip = $_SERVER['REMOTE_ADDR'];
    34         }
    35         // IP地址合法验证
    36         $long = sprintf("%u", ip2long($ip));
    37         $ip   = $long ? [$ip, $long] : ['0.0.0.0', 0];
    38         return $ip[$type];
    39     }
  • 相关阅读:
    记录一下周末作业
    超链接的 使用和按钮添加
    学习了网页设置上传视频
    Java-JDK安装及环境变量配置
    java-库存管理案例
    java-DateFormat
    java-正则表达式练习
    java-StringBuffer类
    java面对对象-匿名对象
    java static和final关键字
  • 原文地址:https://www.cnblogs.com/myIvan/p/10277580.html
Copyright © 2011-2022 走看看