Skip to content

Instantly share code, notes, and snippets.

@sandyUni
Last active December 29, 2015 08:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sandyUni/7643849 to your computer and use it in GitHub Desktop.
Save sandyUni/7643849 to your computer and use it in GitHub Desktop.
取客户端IP 如果使用多级代理的用户,真实IP是取不到的。
<?php
function getOnlineIp() {
$strOnlineIp = "";
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);
$strOnlineIp = $onlineipmatches[0] ? $onlineipmatches[0] : 'unknown';
return $strOnlineIp;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment