我使用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
答案 0 :(得分:0)
您可以使用Dim ClientIP As String = Request.UserHostAddress
获取IP地址
完整代码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;
}