asp 関数コード:
function get_cli_ip()'実際の IP 関数を取得します。最初に HTTP_CLIENT_IP、次に HTTP_X_FORWARDED_FOR、次に REMOTE_ADDR
dim client_ip
if checkip(Request.ServerVariables("HTTP_CLIENT_IP"))=true then
get_cli_ip = checkip(Request.ServerVariables("HTTP_CL IENT_IP") ))
else
MyArray = split(Request.ServerVariables("HTTP_X_FORWARDED_FOR"),",")
if ubound(MyArray)>=0 then
client_ip = trim(MyArray(0))
if checkip(client_ip)= true then
get_cli_ip = client_ip
関数終了
if
end if
get_cli_ip = Request.ServerVariables("REMOTE_ADDR")
if
関数終了
discuz フォーラムは実際の IP の php コードを取得します。他のものも同様です。わずかな変更を参照してください。
(discuz edit include/common.inc.php)次のコードを使用します:
$testip =explode('.', getenv('HTTP_X_FORWARDED_FOR'));
if ($testip[0]=='192' && $testip[1]=='168') {
$onlineip = getenv('REMOTE_ADDR');
}
elseif($testip[0]==' 10') {
$onlineip = getenv('REMOTE_ADDR');
}
else {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
}
'unknown')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER
)
//by Johnny
$tmp_ip =explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$tmp_ip1 =explode(',',$tmp_ip[ 0]);
if ($tmp_ip1[0] =='192′ && $tmp_ip1[1] =='168′) {
$onlineip = getenv('REMOTE_ADDR');
}else if($tmp_ip1[0 ]=='10') {
$onlineip = getenv('REMOTE_ADDR');
}
else{
$onlineip = $tmp_ip[0];
}
unset($tmp_ip);unset($tmp_ip1);
$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
)
$onlineip = $_SERVER['REMOTE_ADDR'];
}