ASP で Request.ServerVariables(REMOTE_ADDR) を使用してクライアントの IP アドレスを取得します。ただし、クライアントがプロキシ サーバーを使用してアクセスする場合、取得されるのは実際のクライアントの IP アドレスではなく、プロキシ サーバーの IP アドレスです。プロキシ サーバー経由でクライアントの実際の IP アドレスを取得するには、Request.ServerVariables(HTTP_X_FORWARDED_FOR) を使用して読み取ります。
ただし、すべてのプロキシ サーバーが Request.ServerVariables(HTTP_X_FORWARDED_FOR) を使用してクライアントの実際の IP を読み取ることができるわけではないことに注意してください。このメソッドで読み取られる IP の一部は依然としてプロキシ サーバーの IP です。
もう 1 つの注意点は、クライアントがプロキシ サーバー経由でアクセスしない場合、Request.ServerVariables(HTTP_X_FORWARDED_FOR) で取得される値は空になることです。したがって、プログラムでこのメソッドを使用したい場合は、次のように実行できます。
...
userip = Request.ServerVariables(HTTP_X_FORWARDED_FOR)
userip = の場合、userip = Request.ServerVariables(REMOTE_ADDR)
...
つまり、クライアントがプロキシ サーバーを通過する場合は、HTTP_X_FORWARDED_FOR の値が取得され、クライアントがプロキシ サーバーを通過しない場合は、REMOTE_ADDR の値が取得されます。