1

127.0.0.1 へのリクエストと localhost へのリクエストの違いをどのように見分けることができますか。

Windows 7 と VS2010 の組み込み Web サーバーのこのコード行では、違いがわかりません。

if (Request.ServerVariables["SERVER_NAME"].ToLower() == "localhost")
{

}

http://127.0.0.1/ 、次に http://localhost/を使用して、独自の組み込み Web サーバーにアクセスしてみてください。

4

3 に答える 3

4

それは問題ですか?接続がローカル接続かどうかを知りたいだけではありませんか? IsLocalこのプロパティを使用するだけです。

if (Request.IsLocal)
{
}
于 2010-06-17T21:57:23.760 に答える
2

Request.Headers はリクエストを区別します。

if (Request.Headers["host"].ToLower() == "localhost") 
{ 
  //shouldn't be hit for 127.0.0.1
} 

注: 必要に応じて、チェックの前にポート番号を消去することを検討する必要があります。

于 2010-06-17T22:07:09.147 に答える
0

実際には、localhost サーバー名として任意の名前を指定できます (たとえば、hosts ファイルを編集して、任意の名前を使用するだけです)。

おそらく、それがローカル リクエストであるかどうかを自分で判断しようとするのではなく、マシンに教えてもらいたいと思うでしょう。

于 2010-06-17T21:59:05.420 に答える