#c# #.net #asp.net #httpwebrequest #httprequest
#c# #.net #asp.net #httpwebrequest #httprequest
Вопрос:
Q:
Я хочу спросить о том, как получить имя компьютера и имя учетной записи пользователя, который делает http request
переход на мой веб-сайт. в соответствии с его запросом.
Когда я ищу, я нахожу, что:
-
REMOTE_HOST
Имя хоста, который выполняет запрос. Если у сервера нет этой информации, он установит REMOTE_ADDR и оставит это значение пустым.
Почему сервер может никогда не содержать имя хоста? и как я могу это исправить?
- Я использую
REMOTE_USER
,LOGON_USER
AUTH_USER
для получения имени учетной записи, но оно также не содержит никаких данных
.
Ответ №1:
Вы можете использовать запрос.Объект ServerVariables, подобный
// will return the host name making the request
string s = Request.ServerVariables["REMOTE_HOST"]
// will return the computer name
string s = Request.ServerVariables["SERVER_NAME"]
Редактировать
Если вы хотите получить имя компьютера, попробуйте следующее
string computer_name = System.Net.Dns.GetHostEntry(Request.ServerVariables["remote_addr"]).HostName;
Response.Write(computer_name);
ПРАВКА II
// Получение сведений о клиентском компьютере
System.Net.IPAddress[] strClientIPAddress = System.Net.Dns.GetHostAddresses(Environment.MachineName);
string strClientMachineName = Environment.MachineName.ToString().Trim();
string strClientUserName = Environment.UserName.ToString().Trim();
string strClientDomainName = Environment.UserDomainName.ToString().Trim();
string strClientOSVersion = Environment.OSVersion.ToString().Trim();
Для получения дополнительных переменных сервера перейдите по следующей ссылке
Комментарии:
1. спасибо, но, первый дает мне
127.0.0.1
,, второй дает мнеlocalhost
, в то время как имя моего компьютера:mm_h
.2. это потому, что я пробую эти методы локально или нет?
3. хммм
System.Net.Dns.GetHostName()
укажите имя сервера.Request.ServerVariables["REMOTE_HOST"]
дайте мне ip-адрес. не имя хоста, я хочу получить имя хоста и учетную запись Windows в соответствии с запросом. Спасибо4. @just_name: Это странно … дайте мне немного времени… Я ищу какое-то другое решение
5. @Just_name: Извините, я не могу найти никакого решения …. каждый орган предлагает код (который я предложил вам) с некоторым лекарством : (
Ответ №2:
попробуйте это
System.Web.HttpContext.Current.Request.UserHostName;
System.Web.HttpContext.Current.Request.UserHostAddress;
Комментарии:
1. оба они получают ip-адрес, а не
hostname
.