この質問が何度も聞かれたことは知っていますが、私の側からは正しい答えが得られませんでした。ここでは、次のコードを使用して、ホストされている Web サイトからエンド ユーザー システムの IP アドレスを取得しています。
function ipCheck() {
if (getenv('HTTP_CLIENT_IP')) {
$ip = getenv('HTTP_CLIENT_IP');
}
elseif (getenv('HTTP_X_FORWARDED_FOR')) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif (getenv('HTTP_X_FORWARDED')) {
$ip = getenv('HTTP_X_FORWARDED');
}
elseif (getenv('HTTP_FORWARDED_FOR')) {
$ip = getenv('HTTP_FORWARDED_FOR');
}
elseif (getenv('HTTP_FORWARDED')) {
$ip = getenv('HTTP_FORWARDED');
}
else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
echo ipCheck();
私のローカル ネットワークでは、このコードは正常に動作しています。それは私のローカル IP 192.168.xxx.xxx を正しく与えました。しかし、私のウェブサイトでこのコードを実行すると、別の IP アドレスが与えられました。