Autor Beitrag
loonie
Hält's aus hier
Beiträge: 4


C#
BeitragVerfasst: Mo 28.06.10 10:41 
Guten Morgen

ich möchte die Netzwerkkonfiguration auslesen.
Dazu möchte ich die IPv4-Addresse, Subnetmask, Gateway und Dns-Server wissen. Eigentlich würd mir schon die Subnetmask reichen, da ich die anderen Werte schon auf andere Weise ausgeben lassen haben. Denoch würd mich interessieren warum ich das bei dieser Varinate aus.dem Internet nicht hinbekommen.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
            string[] Adressen = {""};
            string[] SubnetMasken = {""};
            string[] DefaultGateways = {""};


            ManagementObjectSearcher NetworkInfo = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = 'TRUE'");
            ManagementObjectCollection MOC = NetworkInfo.Get();
            foreach (ManagementObject mo in MOC)
            {

                Adressen = (string[])mo["IPAddress"];
                SubnetMasken = (string[])mo["IPSubnet"];
                DefaultGateways = (string[])mo["DefaultIPGateway"];
                i = 1 + i;
                NetworkCard = NetworkCard + "\r\n" + mo["Description"].ToString();
                MACAddress =MACAddresse+ "\r\n" +  mo["MACAddress"].ToString();
            }


Zum Problem:
Ich hab zwei NetzwerkAdapter. Schleife läuft auch zweimal durch. NetworkCard und MACAddresse lassen sich auch ausgeben. Nur mit den Arrays hab ich Probleme und zwar wenn ich die ausgeben will, ist nur in dem Array Index 0 ein Wert entahlten und der ist 0.0.0.0 . Obewohl bei beiden Adpater eine IP einetragen ist

mfg
loonie Threadstarter
Hält's aus hier
Beiträge: 4


C#
BeitragVerfasst: Mi 30.06.10 11:22 
schade kann mir wohl keiner Helfen dabei.

hab jetzt was neues geschrieben um die Ip Adressen aus zu lesen. Es funktioniert auch soweit ganz gut.
Nur ließt er mir nur die Ip-Adressen von den aktiven Netzwerkkarten aus. Möchte aber gerne von allen Karten die IP, SubnetMask, Gateway und Dns haben. Zum dem bekomm ich bei der Abfrage der SubnetMask in Zeile 21 eine Fehler Meldung: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt." Fehler liegt in Zeile 21:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
foreach (NetworkInterface adapter in nics)
                {
                    IPInterfaceProperties adapterProperties = adapter.GetIPProperties();
                    IPAddressCollection dnsServers = adapterProperties.DnsAddresses;
                    adapterConf[i, 0] = adapter.Description;
  
                    foreach (UnicastIPAddressInformation addr in adapter.GetIPProperties().UnicastAddresses)
                    {
                        adapterConf[i, 1] = addr.Address.ToString();
                    }
                    foreach (IPAddress dns in dnsServers)
                    {
                        adapterConf[i, 2] = dns.ToString();
                    }
                    foreach (GatewayIPAddressInformation addr1 in adapter.GetIPProperties().GatewayAddresses)
                    {
                        adapterConf[i, 3] = addr1.Address.ToString();
                    }
                    foreach (UnicastIPAddressInformation addr in adapterProperties.UnicastAddresses)
                    {
                        adapterConf[i, 4] = addr.IPv4Mask.ToString();
                    }

                    i = i + 1;
                }
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 30.06.10 13:46 
Generell würde ich Dir empfehlen, Dich mal mit dem Debugger vertraut zu machen. Also Haltepunkt setzen und dann die Schleife Schritt für Schritt durchgehen und Dir angucken, was in den Variablen drin steht.

Die Fehlermeldung, die Du in Deinem zweiten Beitrag beschreibst, besagt, dass Du auf die Eigenschaft oder Methode eines Objektes zugreifst, welches null ist.

Bei Deinem ersten Beitrag sieht es mir so aus, als würdest die Arrays in jedem Schleifendurchlauf komplett überschreiben, womit natürlich das Ergebnis aus dem vorhergehenden Schleifendurchlauf futsch ist.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".