C#: NIC-Config (IP, SubnetMask, Gateway) auslesen

Hallo,

ich benötige IP-Adresse, Subnet-Mask und Gateway von den installierten NetzwerkAdaptern.

Über den HostName: System.Net.Dns.GetHostName()
komme ich auf die List der der Adressen: System.Net.Dns.GetHostByName(…).AddressList
Dort gibts aber nur mehr die eigentliche IP-Adresse (.Address) und den AdapterType (.AddressFamily).

Mir fehlen aber SubnetMask und Gateway für jeden Network-Adapter. Weiss jemand wo ich die finde?

Danke
~luki

Mir fehlen aber SubnetMask und Gateway für jeden
Network-Adapter. Weiss jemand wo ich die finde?

Versuchs mal mit den ManagementObject-Classes. Die haben nur einen GROSSEN Nachteil. Sie sind kaum oder meistens sogar nicht dokumentiert.

auf
http://www.vbcity.com/forums/topic.asp?tid=13981&hig…
hab ich vor ewigen Zeiten mal ein Beispiel für die MAC-Adresse gefunden. Ich weiß dass man damit auch den Gateway und die Subnetmask auslesen kann, aber ich weiß nicht mehr wie das war. Aber das sollt da schon Helfen.
In mo.Item(„macaddress“) ersetze einfach das „macaddress“ durch „subnetmask“ oder so. vielleicht hilfts. Spiel dich a bissl damit herum. Versprechen kann ich da nix, aber vielleicht hilfts ja.

Aufruf einfach mit: EnumNetworkAdapters()

'keine Zusätzlichen Imports; System.Management ist aber interresant
Public Sub EnumNetworkAdapters()
TextBox1.Text = „“
Try
Dim query As New System.Management.ManagementObjectSearcher(„SELECT * FROM Win32_NetworkAdapterConfiguration“)
Dim queryCollection As System.Management.ManagementObjectCollection = query.Get()
Dim mo As New System.Management.ManagementObject()
For Each mo In queryCollection
If (IsDBNull(mo.Item(„macaddress“)) = False) AndAlso (mo.Item(„macaddress“) „“) Then TextBox1.Text = TextBox1.Text & mo.Item(„macaddress“) & vbCrLf
Next mo
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
End Try
End Sub

MfG
Alexander Pichlbauer

Falls du das in C# brauchst kann ichs da übersetzen. is kein problem. Im Moment kann ichs da nur leider nicht machen da ich hier kein .Net installiert hab und ich C# noch nicht perfekt beherrsche. Am Abend könnt ichs da in c# übersetzen wennst willst. Schreib einfach mir eine Mail oder hier ins Forum.

Alex

Hallo Alex,

danke für deine Antwort.
Ich werde das mit dem ManagementObject mal austesten.
Wegen VB/C# mach dir keine Sorgen - ich bin eigentlich in beidem recht bewandert und um das Drumherum von VB gehts in diesem Fall sowieso nicht - nur um das Objekt und seine Eigenschaften und Methoden.

Vielen Dank!

Grüsse
~luki

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]