Frage

In den Eigenschaften Abschnitt meiner Netzwerkkarte, auf Windows Server 2008, ich habe IPV6 deaktiviert, so dass nur aktiviert IPV4.

Jedoch in ASP.NET, Request.UserHostAddress gibt ':: 1', eine IPV6-Adresse.

Hat jemand eine Idee, wie man IPV4 um wieder zurück?

War es hilfreich?

Lösung

Wenn Sie eine Verbindung zu localhost (:: 1 / 127.0.0.1), sind Sie nicht die Netzwerkkarte mit, dass der Server hat, sondern eher wie eine virtuelle Karte, die Fenster haben. Ich glaube nicht, dass es auf jeden Fall die Loopback-Karte zu konfigurieren ist und Entfernen von IPv6 von ihm, nicht ohne Unterstützung durch das gesamte System zu entfernen, aber in Win2008 können Sie wahrscheinlich nicht tun mehr.

können Sie überprüfen, ob Ihre physische Karte nicht durch Ausführen von Netzwerk-Paketerfassung utils verwendet wird. In Windows können Sie nie den Verkehr erschnüffeln, die die virtuelle Loopback-Karte geht.

sagte, dass, sollten Sie von einem anderen Computer zuzugreifen (über eine Verbindung, die durch Ihre physische Karte wird vorbei), sollten Sie eine IPv4-Adresse zurückgegeben von Request.UserHostAddress

siehe

Andere Tipps

Die 4 Jungs von Rolla Website hat eine Lösung hier , die ich in meiner Anwendung verwendet haben .

Update:

Für den Fall, dieser Link tot geht, hier Code wird auf diesen Link basiert:

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. Gehen Sie zu Start -> klicken Sie auf Systemsteuerung -> klicken Sie auf View network status and tasks in der Systemsteuerung Fenster. -> klicken Sie auf change adapter settings in Network and Sharing Center Fenster

  2. Network Connections Fenster erscheinen. Hier klicken Sie rechts auf dem network adapter (können Wireless-Adapter oder verkabelte Ethernet-Adapter), dass Sie deaktivieren IPv6 wollen und Properties klicken.

  3. Im network adapter properties Fenster untick Internet Protocol Version 6 (TCP/IPv6) und klicken Sie auf OK.

  4. Typ regedit in Eingabeaufforderung Start Registrierungs-Editor, gehen Sie folgenden Registrierungspunkt in Registrierungs-Editor suchen.

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents
    
  5. Wenn der DisabledComponents Artikel nicht verfügbar ist, können Sie es in folgendem Format, indem Sie auf Bearbeiten erstellen müssen -> Neu -> DWORD (32-Bit) Wert und den Wert auf 0xffffffff (nur Typen ffffffff). Dadurch werden alle IPv6-Funktionen mit Ausnahme der Schnittstelle Loopback-IPv6 deaktivieren, schließlich OK klicken.

  6. Starten Sie den Computer.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top