IIS Request.UserHostAddress Rückkehr IPV6 (:: 1), auch wenn IPV6 Behinderte
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?
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
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();
}
-
Gehen Sie zu Start -> klicken Sie auf Systemsteuerung -> klicken Sie auf
View network status and tasks
in der Systemsteuerung Fenster. -> klicken Sie aufchange adapter settings
inNetwork and Sharing Center
Fenster -
Network Connections
Fenster erscheinen. Hier klicken Sie rechts auf demnetwork adapter
(können Wireless-Adapter oder verkabelte Ethernet-Adapter), dass Sie deaktivieren IPv6 wollen undProperties
klicken. -
Im
network adapter properties
Fenster untickInternet Protocol Version 6 (TCP/IPv6)
und klicken Sie auf OK. -
Typ
regedit
in Eingabeaufforderung Start Registrierungs-Editor, gehen Sie folgenden Registrierungspunkt in Registrierungs-Editor suchen.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents
-
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 auf0xffffffff
(nur Typenffffffff
). Dadurch werden alle IPv6-Funktionen mit Ausnahme der Schnittstelle Loopback-IPv6 deaktivieren, schließlichOK
klicken. -
Starten Sie den Computer.