ユーザーの IP アドレスを検出する PHP コードがあります。以下のコードは IP アドレスを返しますが、IP アドレスはパブリック IP ではなく、ローカル ネットワーク IP (10.0.0.1 など) である場合があります。常にパブリック IP を取得するにはどうすればよいですか? ありがとう。ところで、このコードは別の StackOverflow 投稿からのものです。また、このコードは、Apache Web サーバーとは完全に別のネットワークからインターネット経由でアクセスされている Web サイトで使用されています。
if (isset($_SERVER["HTTP_CLIENT_IP"])){
$ip = $_SERVER["HTTP_CLIENT_IP"];
} elseif (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} elseif (isset($_SERVER["HTTP_X_FORWARDED"])){
$ip = $_SERVER["HTTP_X_FORWARDED"];
} elseif (isset($_SERVER["HTTP_FORWARDED_FOR"])){
$ip = $_SERVER["HTTP_FORWARDED_FOR"];
} elseif (isset($_SERVER["HTTP_FORWARDED"])){
$ip = $_SERVER["HTTP_FORWARDED"];
} else {
$ip = $_SERVER["REMOTE_ADDR"];
}