0

プロキシ サーバー経由でインターネットに接続しているローカル ネットワークがあります。プロキシ サーバーの IP アドレスは192.168.0.1です。ネットワーク内のすべてのシステムに、192.168.0-6.1-255、サブネット マスク 255.255.248.0 などの IP アドレスを手動で割り当てました。Default gateway 192.168.0.1

そして、私のウェブサイトにローカルでアクセスするためにローカルネットワークに別のサーバーを作成しました。そのIPアドレスは192.168.0.25、サブネットマスク255.255.255.0、デフォルトゲートウェイ192.168.0.25です。

ローカル ネットワーク内のすべてのシステムが、アドレスを使用して Web サイトにアクセスできるようになりました

http://192.168.0.25/

$_SERVER['REMOTE_ADDR'] Web サイトにアクセスするすべてのシステムを追跡する必要があるため、phpで関数を使用しました。しかし、私のウェブサイトにアクセスするすべてのシステムの IP アドレスを取得することは、プロキシ サーバーの IP アドレスと同じです ( 192.168.0.1)。

各システムの正しい IP アドレスを取得するのを手伝ってください。

4

2 に答える 2

0

これを試して

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'];
    }
于 2012-11-07T06:06:38.083 に答える
0
function getRealIpAddr()
{
    if (!empty($_SERVER['HTTP_CLIENT_IP']))  
    {
      $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) 
    {
      $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
      $ip=$_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}

echo $userIP = getRealIpAddr();
于 2012-11-07T06:27:17.523 に答える