Problem der Konvertierung von ipv6 zu ipv4

Ich habe einige code in eine asp.net app, needsto Holen Sie sich die ipv4-Adresse des client-Computers (die user sind alle auf unserem eigenen Netzwerk). Vor kurzem haben wir ein Upgrade der server-app läuft auf windows 2008 server. Jetzt die Anfrage.UserHostAddress code gibt die ipv4, wenn der client auf eine ältere OS-und ipv6, wenn Sie auf ein neueres OS (Vista und höher). Also die Funktion, die relys auf dies funktioniert für einige Kunden, und nicht andere.

Fügte ich code, der soll die Umrechnung von ipv6 zu ipv4 zu versuchen, um dieses problem zu beheben. Es ist aus diesem online-tutorial: http://www.4guysfromrolla.com/articles/071807-1.aspx .Ich bin mit dsn.GetHostAddress und dann die Schleife durch die IPs kehrte der Suche nach einem, der "Internetz"

foreach (IPAddress IPA in Dns.GetHostAddresses(HttpContext.Current.Request.UserHostAddress))
{
    if (IPA.AddressFamily.ToString() == "InterNetwork")
    {
        IP4Address = IPA.ToString();
        break;
    }
}

if (IP4Address != String.Empty)
{
    return IP4Address;
}


foreach (IPAddress IPA in Dns.GetHostAddresses(Dns.GetHostName()))
{
    if (IPA.AddressFamily.ToString() == "InterNetwork")
    {
        IP4Address = IPA.ToString();
        break;
    }
}

return IP4Address;

Das problem ist, dass dies nicht für mich arbeiten. Die clients, die Verbindung über ipv4 weiter zurück die richtige ipv4-IP die client-computer, aber die clients, die eine Verbindung von Vista und Windows 7 es ist die Rückkehr der ipv4-IP die SERVER Maschine nicht auf dem client-computer.

  • Ich habe gesehen, dass dieses Beispiel-code wiederholt sich auf vielen blogs. Ich bin erstaunt, da es so falsch.. Teil 1, bekommen Clients IP-Adresse. Wenn das fehlschlägt, senden Sie das server-IP-Adresse. wtf?!?
  • Ja, gerade festgestellt, dass gleiche Beispiel hier: 4guysfromrolla.com/articles/071807-1.aspx. Wenn nichts anderes, mit ToString() zu prüfen, für die enum-Gleichheit sieht aus wie es geschrieben wurde, von insgesamt .NET-Neuling.
InformationsquelleAutor Eden | 2010-01-11
Schreibe einen Kommentar