Entwickler-Ecke

Netzwerk - IP Adresse mit Netzwerkadapter zusammen fügen


123thomas - Di 12.03.13 14:32
Titel: IP Adresse mit Netzwerkadapter zusammen fügen
Hallo!

Ich baue gerade ein kleines Programm zum IP auslesen. Nun bekomme ich den Netzwerkadapter ausgegeben und die IP Adresse auch. Aber ich hab leider kein ansatz wie ich die angaben miteinander verknüpfen kann.

Hat jemand eine Idee?

Ip adresse ausgeben

C#-Quelltext
1:
2:
3:
4:
5:
6:
IPHostEntry Host = Dns.GetHostEntry(Dns.GetHostName());
            foreach (IPAddress IP in Host.AddressList)
            {
               lblAusgabeIP.Text += IP.ToString();
               lblAusgabeIP.Text += Environment.NewLine;
            }


Netzwerkadapter ermitteln

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
//bestimmen der Netzwerkadapter und in combobox packen
            foreach (System.Net.NetworkInformation.NetworkInterface n in System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces())
            {
                //nur adapter die aktiv sind
                if (n.OperationalStatus.ToString() == "Up")
                {
                   //loopback adapter nicht anzeigen
                    if (!n.Name.StartsWith("Loopback"))
                    {
                        //VirtualBox adapter nicht anzeigen
                        if (!n.Name.StartsWith("VirtualBox"))
                        {
                            cBauswahlnetzadapter.Items.Add(n.Name.ToString());
                            anzahlnetzweradapter++;
                            

                       }
                    }
                }
            }



Moderiert von user profile iconTh69: Topic aus WinForms verschoben am Di 12.03.2013 um 14:26


Ralf Jansen - Di 12.03.13 15:09

An der NetworkInterface Klasse kannst du per GetIPProperties().UnicastAddresses [http://msdn.microsoft.com/de-de/library/system.net.networkinformation.ipinterfaceproperties.unicastaddresses.aspx] die zugewiesen IPs abfragen.


123thomas - Di 12.03.13 18:39

Das hat mir schon sehr geholfen. ich bin jetzt ein ganzes Stück weiter. aber ich möchte gerne mit der IPv4 arbeiten. Aber der Code gibt nur die IPv6 von dem Netzweradapter.

Und wenn ich dort IPv4Mask einsetzte sagt er mit veraltet.

Wie mache ich das ?


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
foreach (System.Net.NetworkInformation.NetworkInterface netzwerkkarte in System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces())
            {
                IPInterfaceProperties getip = netzwerkkarte.GetIPProperties();
                UnicastIPAddressInformationCollection adressen = getip.UnicastAddresses;

                if (adressen != null)
                {
                    
                    //for (int i = 0; i < anzahlnetzwerkadapter; i++ )
                    foreach (UnicastIPAddressInformation uni in adressen)
                    {
                        if ( indexzähler == netzwerkartenIndex)
                        {


                            lblAusgabeIP.Text += uni.Address;
                            lblAusgabeIP.Text += Environment.NewLine;
                        }
                        indexzähler++;
                    }
                }


Th69 - Di 12.03.13 21:37

Hallo,

wer oder was sagt 'veraltet'?


123thomas - Mi 13.03.13 17:28

Mein Microsoft Visual C# 2010 Express sagt das es veraltet ist.
Wenn ich Ipv4mask ausgeben kommt da raus 0.0.0.0.
Das ist auch in Ordnung, wenn ich nun hinter den Ipv4mask.Adresses schreibe dann sagt der das es veraltet ist.
Die Ausgabe lautet:0


Ralf Jansen - Mi 13.03.13 18:40

Du meinst wahrscheinlich Address [http://msdn.microsoft.com/de-de/library/system.net.ipaddress.address.aspx]. Die Property ist tatsächlich obsolet. Was zu tun ist steht in den Hinweisen der verlinkten Doku.