PHP获取客户端真实IP
2017-03-29 10:20
561 查看
我们经常要用数据库记录用户的IP,以下代码可以获取客户端真实的IP:
代码如下:
使用方法如下:
代码如下:
//获取用户真实IP function getIp() { if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) $ip = getenv("REMOTE_ADDR"); else if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) $ip = $_SERVER['REMOTE_ADDR']; else $ip = "unknown"; return ($ip); }
使用方法如下:
echo getIp();
/** * 获取在线IP * @return String */ function getOnlineIp($format=0) { global $S_GLOBAL; if(empty($S_GLOBAL['onlineip'])) { 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']; } preg_match("/[\d\.]{7,15}/", $onlineip, $onlineipmatches); $S_GLOBAL['onlineip'] = $onlineipmatches[0] ? $onlineipmatches[0] : 'unknown'; } if($format) { $ips = explode('.', $S_GLOBAL['onlineip']); for($i=0;$i<3;$i++) { $ips[$i] = intval($ips[$i]); } return sprintf('%03d%03d%03d', $ips[0], $ips[1], $ips[2]); } else { return $S_GLOBAL['onlineip']; } }
/** * 获取客户端IP * @return [string] [description] */ function getClientIp() { $ip = NULL; if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $pos = array_search('unknown',$arr); if(false !== $pos) unset($arr[$pos]); $ip = trim($arr[0]); }elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; }elseif (isset($_SERVER['REMOTE_ADDR'])) { $ip = $_SERVER['REMOTE_ADDR']; } // IP地址合法验证 $ip = (false !== ip2long($ip)) ? $ip : '0.0.0.0'; return $ip; }
相关文章推荐
- php 获取客户端的ip、地理信息、浏览器信息、本地真实ip
- PHP获取客户端真实 IP 地址
- php 获取客户端的ip、地理信息、浏览器信息、本地真实ip
- PHP获取客户端的真实IP
- php获取客户端真实ip
- PHP获取客户端的真实IP
- PHP如何获取客户端真实IP
- PHP获取客户端的真实IP
- PHP获取客户端的真实IP
- php获取客户端真实IP
- PHP获取客户端的真实IP
- PHP获取客户端的真实IP
- php 获取客户端的真实ip
- php 获取客户端的ip、地理信息、浏览器信息、本地真实ip
- php获取客户端真实ip
- php 获取客户端的真实ip
- PHP获取客户端的真实IP
- PHP获取客户端的真实IP
- PHP如何获取客户端真实IP
- [转载]PHP如何获取客户端真实IP