- function fun_get_ip(){
- static $ip = null;
- if($ip)
- return $ip; // 不需要计算第二次.
- $ip=false;
- if($_SERVER['HTTP_VIA']){
- if(!empty($_SERVER["HTTP_CLIENT_IP"])){
- $ip = $_SERVER["HTTP_CLIENT_IP"];
- }else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
- $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
- if ($ip){
- array_unshift($ips, $ip); $ip = false;
- }
- $ipss = count($ips);
- for ($i = 0; $i < $ipss; $i++){
- if (!preg_match('/^(10|172\\.16|192\\.168)\\./', $ips[$i])){
- $ip = $ips[$i];
- break;
- }
- }
- }
- }else{
- $ip = $_SERVER['REMOTE_ADDR'];
- }
- # 更兼容的获取.
- if(!$ip)
- if(!$ip = getenv("REMOTE_ADDR"))
- if (!$ip = getenv("HTTP_CLIENT_IP"))
- if(!$ip = getenv("HTTP_X_FORWARDED_FOR"))
- $ip = false;
- return $ip;
- }
- //该片段来自于http://www.codesnippet.cn/detail/151020136433.html
来源: http://www.codesnippet.cn/detail/151020136433.html