asp.netアプリケーションでユーザーIPアドレスを正確に決定
課題:
Request.UserHostAddress
を使用してユーザーのIPアドレスに直接アクセスすると、実際のマシンIPではなく、ユーザーのインターネットサービスプロバイダー(ISP)のIPアドレスが生成されることがよくあります。この制限は、ダウンロードアクセスを制御するなど、正確なIP識別を必要とするアプリケーションに重大な問題を提起します。
より堅牢なソリューション:
信頼できるアプローチには、サーバー変数を活用することが含まれます。この変数は、ユーザーがプロキシサーバーまたはネットワークルーターの背後にいる場合でも、ユーザーのIPアドレスのより正確な表現を提供します。
HTTP_X_FORWARDED_FOR
この方法を使用して真のIPアドレスを取得する方法を示すコード例を次に示します。
c#例:
vb.net例:
<code class="language-csharp">protected string GetTrueIPAddress() { var context = System.Web.HttpContext.Current; string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (!string.IsNullOrWhiteSpace(ipAddress)) { return ipAddress.Split(',')[0].Trim(); } return context.Request.ServerVariables["REMOTE_ADDR"]; }</code>
この改善された方法を実装することにより、ASP.NETアプリケーションは、ネットワーク構成に関係なく、一意のユーザーIPアドレスを確実に取得できます。 これにより、ダウンロード制限などの機能の正確なユーザー識別と制御が保証されます。
以上がASP.NETでユーザーの実際のIPアドレスを確実に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。