ASP.NET MVCでクライアントのIPアドレスを取得する方法は何ですか?
P粉232409069
P粉232409069 2023-10-14 09:01:56
0
2
710

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

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

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

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

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

リーリー

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

P粉232409069
P粉232409069

全員に返信(2)
P粉826283529

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

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

いいねを押す +0
P粉903969231

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

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

リーリー

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

リーリー

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

は、

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

元の回答

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート