2012-03-29 4 views
-2

Чтобы получить имя компьютера, который я написал что-то, как показано ниже:Получить имя компьютера

Dim client As System.Net.IPHostEntry 
client = System.Net.Dns.GetHostByAddress(Request.ServerVariables.Item("REMOTE_HOST")) 
label1.text=client.hostname 

Этот код работает на сервере, а на клиентской машине его не работает.

Есть ли другой способ найти имя компьютера.

+0

Какая у вас ошибка? Что возвращает 'Request.ServerVariables.Item (« REMOTE_HOST »)? – jgauffin

ответ

2

Вы должны смотреть на запрос от клиента, например:

label1.Text = HttpContext.Current.Request.UserHostName; 

Подробнее о HttpRequest.UserHostName Property

+0

Используя этот код, я могу видеть IP-адрес устройства, но мне нужно имя компьютера. – Abhishek

+0

Итак, выполните поиск DNS? Тот же главный, что и в вашем вопросе. – Lloyd

+0

Как выполнить поиск DNS? – Abhishek

0

ниже код так же, как ваш является лучше попытка получения клиентов DNS название машины:

Dim host As IPHostEntry 
'Get the server variable value 
host = Dns.GetHostEntry(HttpContext.Current.Request.ServerVariables.Item("REMOTE_HOST")) 

Что вы делаете, используя переменную сервера REMOTE_HOST, запрашивает g на имя хоста , сделав запрос. Хорошо прочитал эту последнюю часть снова, и она дает ответ, почему она не всегда даст правильный результат.

Если у вас есть свой сайт на webfarm, который имеет балансировки нагрузки, сидящие перед ним, вы получите значение балансировки нагрузки, а не от оригинала клиента, делающего запрос. Вероятно, у «REMOTE_HOST» есть сведения о том, что это последний хост, делающий запрос. Вот почему использование этой переменной сервера ненадежно.

Это также угроза безопасности, поэтому JavaScript не позволяет получать эту информацию, так что это тоже не вариант. Просто исключительно ради информации, один старый способ переучивания старой школы, чтобы получить это, был с помощью элемента управления ActiveX, но это тоже не жизнеспособный вариант. Дело в том, что если вы не находитесь в домене и можете делать обратный поиск по IP, у вас, вероятно, нет согласованного и надежного способа получить авторизованное имя пользователя в 100% случаев.

Смежные вопросы