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

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

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

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の両方で実装する方法を示しています:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

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"];

}

ログイン後にコピー
これらの関数は、最初に

1

2

3

4

5

6

7

8

9

10

11

12

13

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 までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート