从用户的 HTTP 请求中获取有关用户的信息
本文关键字:用户 信息 获取 请求 HTTP | 更新日期: 2023-09-27 17:55:15
Q:
我想询问如何获取对我的网站进行http request
的用户的计算机名称和帐户名。根据他的请求。
当我搜索时,我发现:
-
REMOTE_HOST
正在创建的主机的名称请求。如果服务器没有有了这些信息,它将设置REMOTE_ADDR并将其留空。
为什么服务器可能永远不会包含主机名? 我该如何修复这?
- 我使用
REMOTE_USER
,LOGON_USER
, 获取帐户名称AUTH_USER
但它也不包含任何数据
.
您可以使用 Request.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);
编辑二
检索客户端计算机详细信息
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();
有关更多服务器变量,请查看以下链接
IIS 服务器变量
试试这个
System.Web.HttpContext.Current.Request.UserHostName;
System.Web.HttpContext.Current.Request.UserHostAddress;