.aspx代码在获得客户端ip的时候,获得的ip地址为::1
简述
在C#编辑webform的.aspx文件代码运行中遇到了 Request.UserHostAddress()获取的值为::1
分析
::1是一个ipv6地址,这意味着这个获取的IP值是在IPV6地址存在的时候才有的;因为我们的系统支持ipv6,ipv6/ipv4双栈DNS会根据顺序访问第一个可用的ip,所以会去访问::1而不是127.0.0.1。
这种情况只有在服务器和客户端都在同一台电脑上才会出现(而且是用localhost访问的时候才会出现
网上查到的切换IP值方法:
方法1:
若需转换成127.0.0.1需要更改hosts文件(在windows上文件目录应该是C:\Windows\system32\drivers\etc\hosts)部分内容来解决问题;
方法2:
修改ipv4优先级高于ipv6的记录到优先解析表中,通过修改优先级的方法解决;(重启后会导致电脑IPV6优先级不正常显示!!)
更改hosts文件内容步骤
1.更改hosts文件内容
注释掉文件中的::1 localhost这一行,并增添一行代码
具体更改内容如下:
# ::1 localhost //注释掉文件中的::1 localhost这一行
127.0<