5

我有 IP 地址,但由于某种原因,我可以正确解析名称以显示本地计算机名称。我尝试了几件事,所有这些都显示服务器主机名?

    ipadd = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
    IPAddress myIP = IPAddress.Parse(ipadd);
    IPHostEntry GetIPHost = Dns.GetHostEntry(myIP);


    //userhostname = System.Environment.MachineName;
    //userhostname = Dns.GetHostName(); //Resolve ServerHostName not computer
    //userhostname = HttpContext.Current.Request.UserHostName;
    //userhostname = HttpContext.Current.Request.UserAgent;
    userhostname = GetIPHost.HostName;

对于我想使用的用户名

nametext = WindowsIdentity.GetCurrent().Name;
//Shows server name when deployed on server 
//when debuging and running localy shows correctly current user logged in

//nametext = HttpContext.Current.Request.ServerVariables["LOGON_USER"]; 
// not returning anything

我切换了身份验证,但没有结果

<authentication mode="Forms">
<authentication mode="Windows">
4

2 回答 2

7

使用HttpRequest.UserHostAddressandHttpRequest.UserHostName作为客户端 IP 和机器名称。

假设您已正确配置身份验证,您可以从IIdentity.Name.

在 a 的上下文中Page,您可以使用Request.UserHostAddress,Request.UserHostNameUser.Identity.Name

于 2012-07-10T16:25:02.637 回答
0

我用它在我的 Intranet 上显示客户端区域设置机器(使用 System.Net):

Dns.GetHostEntry(Request.UserHostAddress).HostName.ToString()
于 2016-09-26T13:06:39.540 回答