Laden...

Probleme mit IPv4 und IPv6

Erstellt von Ishildur vor 14 Jahren Letzter Beitrag vor 14 Jahren 2.451 Views
I
Ishildur Themenstarter:in
431 Beiträge seit 2005
vor 14 Jahren
Probleme mit IPv4 und IPv6

Hallo zusammen
Ich versuche, die lokale IPv4 Adresse der Standardschnittstelle zu ermitteln, was auch sehr gut funktioniert, solange IPv6 nicht auf dem Computer installiert ist. Ich frage mich nun, wie es möglich ist eine IPv4 Adresse von einer IPv6 Adresse zu unterscheiden, ohne diese parsen zu müssen. Weis jemand, wie man dies bewerkstelligen könnte?

// declare local variables
   UnicastIPAddressInformation uia = null;

   // start a loop for walking each available network interface
   foreach(NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces()){
    // check if the current network interface is up
    if(nic.OperationalStatus == OperationalStatus.Up){
     // determine the first available address of the current interface and escape the loop
        uia = nic.GetIPProperties().UnicastAddresses[0];
     break;
    }
   }

Mfg Ishildur

U
1.688 Beiträge seit 2007
vor 14 Jahren

Hallo,

AddressFamily sollte Dir helfen.

J
26 Beiträge seit 2009
vor 14 Jahren

..oder quick and dirty, die länge von tostring()

1.433 Beiträge seit 2006
vor 14 Jahren

Die Länge der Adressen (IPv6-Adressen sind 128 Bit lang (IPv4: 32 Bit) vergleichen, dann weisst Du's auch.

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt

1.361 Beiträge seit 2007
vor 14 Jahren

Hi,

geh über AddressFamily.

Die Länge der ge-string-ten IP-Adresse kann ja auch variieren:

Gültige IP-Adressen:
IPv6: ::1 IPv6: d8:3f::2d:9 IPv4: 192.168.0.1 IPv6: 2001:0db8:0000:08d3:0000:8a2e:0070:7344

beste Grüße
zommi