在"属性"部分,我的网络卡,在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();
}
  1. 走开->击控制面板->击 View network status and tasks 在控制面板窗>击 change adapter settingsNetwork and Sharing Center 窗口。

  2. Network Connections 窗户会出现。在这里,你右击 network adapter (可以是无线的适配器或有线以太网络适配器),您希望禁用和IPv6击 Properties.

  3. network adapter properties 窗口,取消选中 Internet Protocol Version 6 (TCP/IPv6) 和"确定"。

  4. 类型 regedit 在命令发动登记册的编辑,继续找到下面的注册项目的注册编辑器。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents
    
  5. 如果的 DisabledComponents 项不可用,则必须创建它在下面的格式要编辑->新>双字(32-bit)的价值,并设置的价值 0xffffffff (只的类型 ffffffff).这将禁止所有IPv6素IPv6回的界面,最后点击 OK.

  6. 重新启动的计算机。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top