ホームページ > バックエンド開発 > C++ > ASP.NETで真のクライアントIPアドレスを取得するにはどうすればよいですか?

ASP.NETで真のクライアントIPアドレスを取得するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-30 09:56:10
オリジナル
513 人が閲覧しました

How to Get the True Client IP Address in ASP.NET?

ASP.NETアプリケーションでの正確なクライアントIPアドレス取得

ユーザーの実際のIPアドレスを決定することは、ユーザーの識別やトラフィック管理など、多くのASP.NETアプリケーションにとって不可欠です。 Request.UserHostAddressはIPアドレスを提供しますが、多くの場合、エンドユーザーのデバイスではなく、プロキシサーバーまたはロードバランサーを表します。

http_x_forwarded_for をレバレッジ化します

ソリューションは、

サーバー変数を使用することにあります。この変数は、トラバースプロキシサーバーまたはネットワークデバイスを要求するときに、元のクライアントIPアドレスを保存します。 優先順位付けHTTP_X_FORWARDED_FORは、正確なIPアドレスの取得を保証します HTTP_X_FORWARDED_FOR

c#およびvb.netコードの例

次のコードスニペットは、このソリューションをC#とvb.netの両方で実装する方法を示しています:

protected string GetIPAddress()
{
    System.Web.HttpContext context = System.Web.HttpContext.Current;
    string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

    if (!string.IsNullOrEmpty(ipAddress))
    {
        string[] addresses = ipAddress.Split(',');
        if (addresses.Length > 0)
        {
            return addresses[0].Trim(); //Added Trim to remove whitespace
        }
    }

    return context.Request.ServerVariables["REMOTE_ADDR"];
}
ログイン後にコピー
これらの関数は、最初に
Public Shared Function GetIPAddress() As String
    Dim context As System.Web.HttpContext = System.Web.HttpContext.Current
    Dim ipAddress As String = context.Request.ServerVariables("HTTP_X_FORWARDED_FOR")

    If Not String.IsNullOrEmpty(ipAddress) Then
        Dim addresses As String() = ipAddress.Split(","c)
        If addresses.Length > 0 Then
            Return addresses(0).Trim() 'Added Trim to remove whitespace
        End If
    End If

    Return context.Request.ServerVariables("REMOTE_ADDR")
End Function
ログイン後にコピー
をチェックします。存在する場合、コンマ区切りリストから最初のIPアドレスを抽出します。 見つからない場合は、

に戻ります。 信頼性を向上させるために、IPアドレス文字列から先頭または末尾の空白を削除するためにHTTP_X_FORWARDED_FOR関数が追加されています。 この方法により、真のクライアントIPアドレスを取得し、アプリケーションのセキュリティと機能を強化する精度が大幅に向上します。

以上がASP.NETで真のクライアントIPアドレスを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート