IIS Request.UserHostAddress retornando IPV6 (:: 1), mesmo quando o IPV6 desabilitado

Na seção de propriedades da minha placa de rede, no Windows Server 2008, eu tenho o IPV6 desativado, deixando apenas o IPV4 ativado.

No entanto, no ASP.NET, Request.UserHostAddress retorna ‘:: 1’, um endereço IPV6.

Alguém tem alguma idéia de como voltar a IPV4?

    Se você está se conectando ao host local (:: 1 / 127.0.0.1), você não está usando a placa de rede que o seu servidor possui, mas sim como um cartão virtual que o Windows possui. Eu não acho que há qualquer maneira de configurar a placa de loopback e remover o IPv6, não sem remover o suporte de todo o sistema, mas no Win2008 você provavelmente não pode mais fazer isso.

    Você pode verificar se o seu cartão físico não está sendo usado executando utilitários de captura de pacotes de rede. No Windows, você nunca pode farejar o tráfego que percorre o cartão loopback virtual.

    Dito isto, se você acessar de uma máquina diferente (por meio de uma conexão que passará pelo cartão físico), deverá ver um endereço IPv4 sendo retornado pelo Request.UserHostAddress

    O site 4 Guys from Rolla tem uma solução aqui , que eu usei no meu aplicativo.

    Atualizar:

    Apenas no caso de este link acabar, aqui está o código baseado neste link:

     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. Vá em Iniciar -> clique em Painel de Controle -> clique em View network status and tasks na janela do Painel de Controle -> clique em change adapter settings na janela Network and Sharing Center .

    2. Network Connections janela Network Connections será exibida. Aqui, clique com o botão direito do mouse no network adapter (pode ser adaptador sem fio ou adaptador Ethernet com fio) que você deseja desabilitar o IPv6 e clique em Properties .

    3. Na janela de network adapter properties , desmarque Internet Protocol Version 6 (TCP/IPv6) e clique em OK.

    4. Digite regedit no prompt de comando para iniciar o editor de registro, continue a localizar o item de registro a seguir no Editor do Registro.

       HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents 
    5. Se o item DisabledComponents não estiver disponível, você deverá criá-lo no formato a seguir indo em Editar -> Novo -> Valor DWORD (32 bits) e defina o valor como 0xffffffff (apenas digite ffffffff ). Isso desabilitará todos os resources do IPv6, exceto a interface de loopback do IPv6; finalmente, clique em OK .

    6. Reinicie o computador.