IIS请求。UserHostAddress返回IPV6(::1),即使当IPV6无障碍
题
在"属性"部分,我的网络卡,在windows服务器2008年,我IPV6残疾人,仅留下IPV4启用。
但是在ASP.NET,的请求。UserHostAddress返回'::1',IPV6地址。
有任何人得到任何想法如何恢复到IPV4?
解决方案
如果你正在连接到本地主机(:: 1 / 127.0.0.1),你不使用你的服务器网卡,而是像Windows有一个虚拟卡。我不认为这是无论如何配置Loopback卡,并从中取出的IPv6,不是没有从整个系统中删除支持,但在的Win2008你可能无法做到这一点了。
您可以验证您的物理卡不被使用运行网络数据包捕获工具集。在Windows中,你永远无法嗅出,可引导虚拟环回卡的流量。
这就是说,你应该从不同的计算机访问(通过将通过你的身体卡路过的连接),你应该看到Request.UserHostAddress
返回IPv4地址
其他提示
从罗拉网站4个家伙有一个解决方案这里,我已经在我的应用程序使用
更新
万一这个环节耗尽,这里是基于此链接代码:
public string GetIpAddress()
{
string ipAddressString = HttpContext.Current.Request.UserHostAddress;
if (ipAddressString == null)
return null;
IPAddress ipAddress;
IPAddress.TryParse(ipAddressString, out ipAddress);
// If we got an IPV6 address, then we need to ask the network for the IPV4 address
// This usually only happens when the browser is on the same machine as the server.
if (ipAddress.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6)
{
ipAddress = System.Net.Dns.GetHostEntry(ipAddress).AddressList
.First(x => x.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork);
}
return ipAddress.ToString();
}
走开->击控制面板->击
View network status and tasks
在控制面板窗>击change adapter settings
在Network and Sharing Center
窗口。Network Connections
窗户会出现。在这里,你右击network adapter
(可以是无线的适配器或有线以太网络适配器),您希望禁用和IPv6击Properties
.在
network adapter properties
窗口,取消选中Internet Protocol Version 6 (TCP/IPv6)
和"确定"。类型
regedit
在命令发动登记册的编辑,继续找到下面的注册项目的注册编辑器。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents
如果的
DisabledComponents
项不可用,则必须创建它在下面的格式要编辑->新>双字(32-bit)的价值,并设置的价值0xffffffff
(只的类型ffffffff
).这将禁止所有IPv6素IPv6回的界面,最后点击OK
.重新启动的计算机。