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
Hallo,
AddressFamily sollte Dir helfen.
..oder quick and dirty, die länge von tostring()
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
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