<?php /** * 获得用户的真实IP地址 * * @return string */ function real_ip(){ static $realip = NULL; if ($realip !== NULL){ return $realip; } if (isset($_SERVER)){ if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])){ $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */ foreach ($arr AS $ip){ $ip = trim($ip); if ($ip != 'unknown'){ $realip = $ip; break; } } } elseif (isset($_SERVER['HTTP_CLIENT_IP'])){ $realip = $_SERVER['HTTP_CLIENT_IP']; } else{ if (isset($_SERVER['REMOTE_ADDR'])){ $realip = $_SERVER['REMOTE_ADDR']; } else{ $realip = '0.0.0.0'; } } } else{ 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'); } } preg_match("/[d.]{7,15}/", $realip, $onlineip); $realip = !emptyempty($onlineip[0]) ? $onlineip[0] : '0.0.0.0'; return $realip; } ?>
您可能感兴趣的文章:
php 获取外网真实IP的二种方法
php 获取客户端IP地址、地理信息、浏览器信息、本地真实IP的代码
php获取客户端的真实IP的方法介绍