我怎样才能获得客户端IP?ASP.NET

时间:2014-08-21 11:56:04

标签: asp.net ip

我使用HTTP_X_FORWARDED_FOR和REMOTE_ADDR服务器变量来获取客户端IP。如果我使用Chrome:

HTTP_X_FORWARDED_FOR = "";
REMOTE_ADDR  = returns ipv4

如果我使用其他浏览器:

HTTP_X_FORWARDED_FOR = "";
REMOTE_ADDR  = returns ipv6

我怎样才能在任何地方获得ipv4?

更新:我关闭了服务器上的IPv6支持,REMOTE_ADDR始终返回ipv4

1 个答案:

答案 0 :(得分:0)

您可以使用Dim ClientIP As String = Request.UserHostAddress获取IP地址

Credit to this article

完整代码http://tutorialgenius.blogspot.in/2010/09/aspnet-get-ipv4-address-even-if-user-is.html

使用此代码,即使访问者位于任何代理(Reference)之后,我们也可以找到访问者的IP地址

public string IpAddress()
{
string strIpAddress;
strIpAddress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (strIpAddress == null)
{
strIpAddress = Request.ServerVariables["REMOTE_ADDR"];
}
return strIpAddress;
}