php ecmall中封装的获取真实ip代码
2013-11-26 09:12
681 查看
背景:今天开发功能的时候,需要用到获取访问用户的真实ip地址。心想框架ecmall中应该有这种常用小工具的封装,找了下,还真在ecmall.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 = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0'; return $realip; }补充点:ecmall.app中封装有其他的很常用的方法,可以多看看。哪怕开发用不到整个ecmall框架,也可以抽取部分函数出来,节约时间。
相关文章推荐
- 做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
- 做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
- PHP代码如何实现获取真实IP和代理IP
- PHP代码如何实现获取真实IP和代理IP
- php获取客户端真实IP 防止代理和作弊
- 获取用户真实姓名 Monxin专用(PHP代码函数)
- php获取客户端真实ip
- php中获取指定IP的物理地址的代码(正则表达式)
- php 获取客户端的ip、地理信息、浏览器信息、本地真实ip
- PHP获取用户真实 IP , 淘宝IP接口获得ip地理位置
- PHP获取用户真实 IP , 淘宝IP接口获得ip地理位置
- PHP获取真实客户端的真实IP
- PHP获取用户真实IP函数
- PHP获取客户端真实IP
- PHP中使用Node.js根据ip获取地理位置的方法代码
- PHP 获取用户真实IP
- PHP获取客户端及服务器端IP的封装类
- PHP如何严格获取真实用户IP?
- PHP获取客户端真实IP