1

私のウェブサイトに連絡先フォームがあり、ユーザーの IP アドレスを知りたいのですが、ローカル テストXAMPPで次の PHP コードを試しました。

function getRealIpAddr()
{
if (!empty($_SERVER['HTTP_CLIENT_IP']))
//check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
 elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
 //to check ip is pass from proxy
  {
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
  }
  else
  {
    $ip=$_SERVER['REMOTE_ADDR'];
  }
  return $ip;

}
$ipaddress= getRealIpAddr();

echo "my ip address is" . $ipaddress;

しかし、結果は常に

"my ip address is::1",

コードの何が問題なのかわかりません。

4

2 に答える 2

8

これは、ローカル マシン上にいるためです -::1は の IPv6 アドレスの 1 つですlocalhost。に似てい127.0.0.1ます。これは、スクリプトにローカルでアクセスしているためです。このスクリプトをサーバーにアップロードし、インターネット接続を介してアクセスすると、外部 IP を確認できます。

于 2013-06-26T13:54:45.077 に答える
2

::1 は 127.0.0.1 と同じですが、IPv6 表記なので、あなたのコードは正しいかもしれません! サーバーで確認して、結果を「whatismyip.com」の出力などと比較できますか?

于 2013-06-26T13:55:14.567 に答える