Home >php教程 >php手册 >获取客户端IP地址

获取客户端IP地址

WBOY
WBOYOriginal
2016-06-07 11:43:191480browse

发现get_client_ip在局域网代理模式下面部分机器无法获取IP,故修改get_client_ip如下解决,但也有可能是我们这边服务器配置的问题:
修改位置:ThinkPHP\Common\funcitons.php->get_client_ip()function get_client_ip($type = 0) {<br>     $type       =  $type ? 1 : 0;<br>     static $ip  =   NULL;<br>     if ($ip !== NULL) return $ip[$type];<br>     if($_SERVER['HTTP_X_REAL_IP']){//nginx 代理模式下,获取客户端真实IP<br>         $ip=$_SERVER['HTTP_X_REAL_IP'];     <br>     }elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {//客户端的ip<br>         $ip     =   $_SERVER['HTTP_CLIENT_IP'];<br>     }elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {//浏览当前页面的用户计算机的网关<br>         $arr    =   explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);<br>         $pos    =   array_search('unknown',$arr);<br>         if(false !== $pos) unset($arr[$pos]);<br>         $ip     =   trim($arr[0]);<br>     }elseif (isset($_SERVER['REMOTE_ADDR'])) {<br>         $ip     =   $_SERVER['REMOTE_ADDR'];//浏览当前页面的用户计算机的ip地址<br>     }else{<br>         $ip=$_SERVER['REMOTE_ADDR'];<br>     }<br>     // IP地址合法验证<br>     $long = sprintf("%u",ip2long($ip));<br>     $ip   = $long ? array($ip, $long) : array('0.0.0.0', 0);<br>     return $ip[$type];<br> }

AD:真正免费,域名+虚机+企业邮箱=0元

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn