Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取用户IP地址_C#_Asp.net_Ip Address - Fatal编程技术网

C# 获取用户IP地址

C# 获取用户IP地址,c#,asp.net,ip-address,C#,Asp.net,Ip Address,我有一个具有登录名的web应用程序。现在我想要的是在登录时获取最终用户的IP地址。我尝试过研究,但根据我的理解,它得到的是我机器的ip,而不是登录的人。此应用已部署在服务器上。如果我照他们说的做,我会得到服务器的ip地址。但是我想要登录的最终用户的IP地址 这是我所看到的一个例子 private string GetIP() { string strHostName = ""; strHostName = System.Net.Dns.GetHostName(); IP

我有一个具有登录名的web应用程序。现在我想要的是在登录时获取最终用户的IP地址。我尝试过研究,但根据我的理解,它得到的是我机器的ip,而不是登录的人。此应用已部署在服务器上。如果我照他们说的做,我会得到服务器的ip地址。但是我想要登录的最终用户的IP地址

这是我所看到的一个例子

private string GetIP()
{
    string strHostName = "";
    strHostName = System.Net.Dns.GetHostName();

    IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(strHostName);

    string ipaddress =convert.tostring(ipEntry.AddressList[2]);

    return ipaddress.tostring();

}
我不确定我是否理解正确,但我认为这将获得本地ip地址,而不是登录的最终用户的ip地址。如果我错了,请纠正我。有什么想法吗?谢谢

使用-

HttpContext.Current.Request.UserHostAddress

对于from Request.ServerVariables,可以使用REMOTE_ADDR和HTTP_X_FORWARDED_

UserHostAddress属性只是远程_ADDR服务器变量的包装器。因此,如果您的用户位于代理或路由器后面,则只返回一个IP地址,即代理或路由器的IP地址

红色:

stackoverflow中还有另一个线程:

请尝试两种方法:

HttpContext.Current.Request.UserHostAddress;

可能重复的
HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];