我的程序想获得访客的IP 地址,我在本地进行测试,我的机器连接到路由器
使用方法 string ip = System.Web.HttpContext.Current.Request.UserHostAddress;
数据库内IP地址的字段类型是NVARCHAR(50), 但是不知道为什么得到的IP 地址都是:::1 ,奇怪的很。
:::1是IPv6的本机地址,如果IPv4就是127.0.0.1
本机访问得到的是:::1正常的。
System.Web.HttpContext.Current.Request.UserHostAddress; 这样获取IP是没问题的。
感谢了
用这个就可以了:Request.ServerVariables.Get("Remote_Addr").ToString();
不行,我跟踪了一下,用这个获得的IP 就是:::1 这样的字符串。
难道和我环境有关系?
那你再试试这个:Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
如果还有行的话,就看看你的本地连接的属性设置是不是有什么问题
是不是 機器上有很多網卡。
几个虚拟机网卡,无线网卡,VPN连接网卡
@figofeng: 那 就對。你讀取到的這個ip,可能是其中之一。因此 需要換一 方法。可以讀出集合,看看,哪個是你需要的。