/**
* ユーザーの実際の IP アドレスを取得します
*
* @戻り文字列
*/
関数 real_ip(){
静的 $realip = NULL;
if ($realip !== NULL){
$realip を返します。
}
if (isset($_SERVER)){
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$arr =explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
/* 取X-Forwarded-For中第一一不知の有效IP文字列 */
foreach ($arr AS $ip){
$ip = トリム($ip);
if ($ip != '不明'){
$realip = $ip;
壊す;
}
}
}
elseif (isset($_SERVER['HTTP_CLIENT_IP'])){
$realip = $_SERVER['HTTP_CLIENT_IP'];
}
それ以外の場合{
if (isset($_SERVER['REMOTE_ADDR'])){
$realip = $_SERVER['REMOTE_ADDR'];
}
それ以外の場合{
$realip = '0.0.0.0';
}
}
}
それ以外の場合{
if (getenv('HTTP_X_FORWARDED_FOR')){
$realip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif (getenv('HTTP_CLIENT_IP')){
$realip = getenv('HTTP_CLIENT_IP');
}
それ以外の場合{
$realip = getenv('REMOTE_ADDR');
}
}
preg_match("/[d.]{7,15}/", $realip, $onlineip);
$realip = !emptyempty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';
$realip を返します。
}
?>
摘自chaojie2009的专栏