当前位置: 代码迷 >> ASP.NET >> 为啥获得的IP是 :1 ?该怎么处理
  详细解决方案

为啥获得的IP是 :1 ?该怎么处理

热度:10040   发布时间:2013-02-25 00:00:00.0
为啥获得的IP是 ::1 ????
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"];            }        }
  相关解决方案