获取客户端IP地址我们最简单的办法就是直接使用REMOTE_ADDR但这种如果有代理IP就无法获取了,所以我们要使用HTTP_X_FORWARDED_FOR来获取,下面我来给大家介绍一个获取IP地址函数
最简单的做法
代码如下 | 复制代码 |
|
这个我自己写的
代码如下 | 复制代码 |
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $onlineip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) { $onlineip = getenv('HTTP_X_FORWARDED_FOR'); } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) { $onlineip = getenv('REMOTE_ADDR'); } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) { $onlineip = $_SERVER['REMOTE_ADDR']; } echo $onlineip; ?> |
但感觉不怎么样,后来百度找到了一个
实例
代码如下 | 复制代码 |
function real_ip() { if ($realip !== NULL) { if (isset($_SERVER)) { /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */ if ($ip != 'unknown') { preg_match("/[d.]{7,15}/", $realip, $onlineip); return $realip; |