Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
IpAdress MapToIP Methoden liefern eventuell falsche Ergebnisse für IPv4 und IPv6?
ClaraSoft
myCSharp.de - Member



Dabei seit:
Beiträge: 15

Themenstarter:

IpAdress MapToIP Methoden liefern eventuell falsche Ergebnisse für IPv4 und IPv6?

beantworten | zitieren | melden

Hallo,

Ich habe gestern festgestellt, das man die IPv6 Loopback Addresse nicht in die entsprechende IPv4 Loopback Adresse umwandeln kann bzw. das Ergebnis entspricht nicht dem was ich erwarten würde.

Die Loopback Addresseen sind ::1 für IPv6 und 127.0.0.1 für IPv4.

Wenn ich nun ::1 zu IPv4 mappe bekomme ich 0.0.0.1 als Ergebnis zurück, erwarten würde ich hier aber 127.0.0.1. Für Andere IPv6 Addressen scheint dies zu jedoch richtig zu Funktionieren.

Umgekehrt verhält sich die Methode MapToIPv6 bei IPv4 Addressen auch etwas seltsam.
So wird bei 127.0.0.1 folgendes einfach davor ::ffff: gehängt, das scheint generell bei jeder IPv4 Addresse der Fall zu sein.

Test App:


class Program
    {
        static void Main(string[] args)
        {
            var ipAddresses = Dns.GetHostAddresses("localhost");
            //var ipAddresses = Dns.GetHostAddresses(Dns.GetHostName());
            var ipAddress = ipAddresses[0];

            Console.WriteLine($"Loopback IPv6: {ipAddress.MapToIPv6()}");
            Console.WriteLine($"Loopback IPv4: {ipAddress.MapToIPv4()}");

            ipAddress = ipAddresses[ipAddresses.Length -1];

            Console.WriteLine($"Loopback IPv6: {ipAddress.MapToIPv6()}");
            Console.WriteLine($"Loopback IPv4: {ipAddress.MapToIPv4()}");

            Console.ReadKey();
        }
    }

Ausgabe für localhost:

Loopback IPv6: ::1
Loopback IPv4: 0.0.0.1
Loopback IPv6: ::ffff:127.0.0.1
Loopback IPv4: 127.0.0.1

Ausgabe für Hostname

Loopback IPv6: fe80::e83a:b1d0:426d:8f8d%21
Loopback IPv4: 66.109.143.141
Loopback IPv6: ::ffff:192.168.178.20
Loopback IPv4: 192.168.178.20
Ist das verhalten korrekt oder sollte ich das als Bug melden? Ich bin mir nicht sicher. Was meint ihr?
private Nachricht | Beiträge des Benutzers
T-Virus
myCSharp.de - Member



Dabei seit:
Beiträge: 1768
Herkunft: Nordhausen, Nörten-Hardenberg

beantworten | zitieren | melden

Die Programmierung von MapToIp wandelt nur die Bytes der entsprechenden IP von v4/6 oder umgekehrt.
Was die Programmierung nicht macht, ist eben spezielle Adressen wie die Loopback Adressen zu berücksichtigen.
Dafür müsstest du die vermutlich was eigenes bauen.

MapToIpv4

Nachtrag:
Als Anlauf kannst du dafür aus IpAddress dann Loopback und IPv6Loopback verwenden.
Nur falls du es dringend brauchst :)

T-Virus
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von T-Virus am .
Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
private Nachricht | Beiträge des Benutzers