検索

ホームページ  >  に質問  >  本文

ASP.NET MVCでクライアントのIPアドレスを取得する方法は何ですか?

私は ASP.NET MVC スタックをまったく初めて使用するのですが、単純な Page オブジェクトと Request ServerVariables オブジェクトで何が起こっているのか知りたいのですが?

基本的にはクライアント PC の IP アドレスを抽出したいのですが、現在の MVC 構造がこれをどのように変更するのか理解できません。

私の知る限り、ほとんどの変数オブジェクトは HttpRequest のバリアントに置き換えられています。

リソースを共有してくれる人はいますか? ASP.NET MVC の世界では、学ぶべきことが本当にたくさんあります。 :)

たとえば、現在の関数を含む静的クラスがあります。 ASP.NET MVC を使用して同じ結果を達成するにはどうすればよいですか?

リーリー

コントローラー ページからこの関数を呼び出すにはどうすればよいですか?

P粉232409069P粉232409069405日前689

全員に返信(2)返信します

  • P粉826283529

    P粉8262835292023-10-15 00:43:26

    Request.ServerVariables["REMOTE_ADDR"] ビュー内またはコントローラーのアクション メソッド本体内で直接機能するはずです (リクエストは MVC のコントローラー クラスのプロパティであり、ページではありません)。

    正常に動作していますが、仮想 IIS ではなく実際の IIS で公開する必要があります。

    返事
    0
  • P粉903969231

    P粉9039692312023-10-15 00:08:01

    簡単な答えは、 HttpRequest.UserHostAddress プロパティ を使用することです。

    例:コントローラ内部から:

    リーリー

    例:ヘルパー クラスから:

    リーリー

    ただし、リクエストが 1 つ以上の プロキシ サーバー によって送信された場合、返される IP アドレス プロパティ HttpRequest.UserHostAddress が、リクエストを中継する最後のものになります。プロキシサーバーのIPアドレス。 プロキシ サーバー

    は、

    事実上の 標準を使用して、クライアントの IP アドレスを XX-Forwarded-For HTTP ヘッダーに配置できます。リクエストに X-Forwarded-For ヘッダーがあるという事実に加えて、X-Forwarded-For が spoofed されていないという保証もありません。

    元の回答

    リーリー 上記のコードは、コレクションを検索せずにクライアントの IP アドレスを提供します。 Request プロパティはコントローラー (またはビュー) で使用できます。したがって、Page クラスを関数に渡す代わりに、Request オブジェクトを渡して同じ結果を得ることができます。 リーリー

    返事
    0
  • キャンセル返事