ASP.NET - различие между localhost и 127.0.0.1

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

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

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

}

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

3 ответа

Решение

Request.Headers будет дифференцировать запросы:

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

Примечание. В зависимости от ваших потребностей перед проверкой вам нужно будет удалить номер порта.

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

if (Request.IsLocal)
{
}

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

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

Другие вопросы по тегам