Получение имени хоста пользователя в ASP.NET приложении

Иногда возникает необходимость определить имя хоста пользователя, который пришел на страницу нашего ASP.NET приложения. Документация предлагает простой способ получить эти данные: Page.Request.UserHostName. Однако такой подход не работает. Вместо ожидаемого имени хоста метод возвращает его IP адрес. Не спешите искать что то в настройках приложения или бежать ремонтировать ваш DNS сервер.

Не поможет ничего, так как из за досадной ошибки внутри  .NET в классе HttpRequest как метод Page.Request.UserHostName так и Page.Request.UserHostAddress всегда возвращают одно и то же значение.

Для того, чтобы получить имя хоста я предлагаю использовать такое выражение:

string hostName = Dns.GetHostEntry(Page.Request.UserHostAddress).HostName

В этом случае все работает правильно.

Получение имени хоста пользователя в ASP.NET приложении: 4 комментария

  1. dv

    А как это поможет? Request.UrlReferrer выдает Null при открытии страницы. Или адрес страницы, с которой пришел пользователь. Это не то, что нужно. Мне нужно имя компьютера, с которого пришел запрос.

  2. Kosten

    Если нужно имя компьютера пользователя, то Ваш вариант верный.
    P.S. подписался на Ваш RSS, буду постоянным читателем.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *