win7x64 + vs2010 + ie9
用
- C# code
Response.Write(Request.ServerVariables["Remote_Addr"]);
得到的结果是“::1”;这是咋回事啊
------解决方案--------------------------------------------------------
你应该是在自己电脑上测试的,你可以换用别的电脑来当客户端获取的东西就不是这个了,另外你这个东西其实是可以配置的,IPV6格式
------解决方案--------------------------------------------------------
这个是IPV6格式的。
有个方法可以转
代码如下
- C# code
public string GetClientIPv4() { string ipv4 = String.Empty; foreach (IPAddress ip in Dns.GetHostAddresses(GetClientIP())) { if (ip.AddressFamily.ToString() == "InterNetwork") { ipv4 = ip.ToString(); break; } } if (ipv4 != String.Empty) { return ipv4; } foreach (IPAddress ip in Dns.GetHostEntry(GetClientIP()).AddressList) { if (ip.AddressFamily.ToString() == "InterNetwork") { ipv4 = ip.ToString(); break; } } return ipv4; } /// <summary> /// 取得客户端地址 /// </summary> public string GetClientIP() { if (null == HttpContext.Current.Request.ServerVariables["HTTP_VIA"]) { return HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; } else { return HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; } }