ASP.NET - различие между localhost и 127.0.0.1 - PullRequest
1 голос
/ 18 июня 2010

Как вы можете определить разницу между запросом, идущим на 127.0.0.1, и localhost.

Эта строка кода на Windows 7 и встроенном веб-сервере VS2010 не может отличить.

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

}

попробуйте подключиться к своему встроенному веб-серверу: http://127.0.0.1/ а потом http://localhost/

Ответы [ 3 ]

4 голосов
/ 18 июня 2010

Имеет ли это значение?Разве вы не хотите знать, является ли соединение локальным?Я бы просто использовал для этого свойство IsLocal.

if (Request.IsLocal)
{
}
2 голосов
/ 18 июня 2010

Request.Headers различает запросы:

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

Примечание: в зависимости от ваших потребностей, вам придется рассмотреть возможность очистки номера порта перед проверкой.

0 голосов
/ 18 июня 2010

Вы можете фактически указать любое имя в качестве имени вашего сервера локального хоста (например, просто отредактируйте файл hosts и используйте произвольное имя)

Вы, вероятно, хотите, чтобы аппарат сообщал вам, является ли это локальным запросом, а не пытался выяснить это для себя.

...