nilstk
Goto Top

Auslesen des Namens der LAN-Verbindung

Moin,

ich suche für die Umstellung der LAN-Verbindung den Namen der LAN Verbindung.

Im Englischen heißt sie z.B. "Local Area Connection", im chinesischen so und so ... usw.

Leider immer anders face-sad

Gibt es eine Möglichkeit den Namen aus der Registry oder von woanders zu lesen? (unter 98,2k,XP)

(Visual Basic, C ... )

Danke für jegliche Hilfe.

Content-Key: 29529

Url: https://administrator.de/contentid/29529

Printed on: April 19, 2024 at 23:04 o'clock

Member: misterdemeanor
misterdemeanor Apr 03, 2006 at 16:30:53 (UTC)
Goto Top
mit .Net? Oder programmierst Du noch in verächtlicheren Versionen? *fg*
Member: nilstk
nilstk Apr 03, 2006 at 16:42:45 (UTC)
Goto Top
verächtlichen Versionen face-smile

RapidQ - ist sehr Visual Basic ähnlich, so dass ich das fast 1:1 übernehmen könnte.

Weiß jemand da evtl. Rat?
Wie kann ich mit VB den Namen der LAN Verbindung feststellen - unabhängig von der Sprache.
Und - wie bekomme ich die MAC Adresse dieser Verbindung?

Das Ganze möglichst mit Visual Basic, aber C wäre auch ok...
Member: misterdemeanor
misterdemeanor Apr 03, 2006 at 17:25:33 (UTC)
Goto Top
warum Dir eine(n) klaren Lösungs-ansatz / Vorschlag geben WENN DU nicht klar(genauer) wirst?

Deine Problemstellung kann entweder mittels Win32Api oder .Net "Calls" gelöst werden-->In welcher Sprache(Version) programmierst Du? VB6, VB.Net VB2005? Oderr solls da doch lieber C,C++ oder C# sein? Wiederum in unbekannter Version!

Wie kann ich mit VB den Namen der LAN Verbindung feststellen - unabhängig von der Sprache.

Ich nehme jetzt einmal an das es nur einen "Ethernetfähigen" Adapter auf dem Zielrechner gibt...

Und - wie bekomme ich die MAC Adresse dieser Verbindung?

Die MAC-Adresse welchen Rechners der Verbindung?

Entschuldige wenn ich nur mit Gegenfragen antworte.

Grüße
Member: nilstk
nilstk Apr 03, 2006 at 17:52:21 (UTC)
Goto Top
Ich kann nicht nachvollziehen, warum es nicht genau ist face-smile

Steht doch da. RapidQ - auch wenn die Programmiersprache wohl den meistne unbekannt ist (VB ähnlich).

Es geht darum, dass ich den Namen der aktuellen LAN-Verbindung haben möchte, denn im englischen XP heißt sie z.B. "Local Area Connection", während im chinesischen XP nur noch wilde Zeichen da stehen.

Und ich würde dann zu diesem Adapter (also dem 1. Netzwerkadapter für LAN) gerne die MAC Adresse bekommen.

Das ganze mit VB bzw. ggf. über WinAPI - nur wie geht das?

Angenommen ich würde es in VB programmieren wollen ...
Member: misterdemeanor
misterdemeanor Apr 04, 2006 at 14:27:18 (UTC)
Goto Top
So, jetzt habe ich mich mal mit Deinem Problem befasst und gebe Dir ersteinmal einen Link mit dessen Du schon einiges anfangen können solltest :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk ...

Um genau zu sein ist das die /Perfekte Lösung/ Deines Problemes.

Wenn Du nicht ganz mit zu Recht kommst schicke ich Dir auch gerne N bissel fertigen Code *gg*

Grüße

Felix
Member: misterdemeanor
misterdemeanor Apr 04, 2006 at 20:09:46 (UTC)
Goto Top
Hi Nils,
jetzt habe ich mich ein bischen mit WMI beschäftigt und in nem VBA Modul folgenden Code zum Anzeigen der (physikalisch) vorhanden Netzwerkadapter geschrieben. Lass mich mal wissen ob das in die Richtung einer für Dich geeigneten Lösung geht. Es ist zwar noch ziemlich unsauber programmiert...aber gucke selbst.
Public Function getAdapterInfos()
  Dim objWMIService As Object
  Dim objRegistry As Object
  Dim Adapters As Object
  Dim Adapter As Object
  Dim Adapter2 As Object
  Dim AConfig As Object
  Dim conName As String
  Dim keyPath As String
  Dim sql As String
  Dim Computer As String
  Dim s As String
  Dim regPath As String
  Const HKEY_LOCAL_MACHINE = &H80000002
  Computer = "localhost"  
  
  Set objRegistry = GetObject("winmgmts:" & "!\\" & Computer & "\root\default:StdRegProv")  

  sql = "SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionStatus Is Not NULL And MACAddress Is Not NULL"  

  Set objWMIService = GetObject("winmgmts:" & "!\\" & Computer & "\root\cimv2")  
  Set Adapters = objWMIService.ExecQuery(sql)

  For Each Adapter In Adapters
    s = Adapter.Name & "," & Adapter.AdapterType & "," & Adapter.MACAddress & ","  
    Set AConfig = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where Index = " & Adapter.Index)  
    
    For Each Adapter2 In AConfig
      keyPath = "SYSTEM\CurrentControlSet\Control\Network\" & _  
        "{4D36E972-E325-11CE-BFC1-08002BE10318}\" & Adapter2.SettingID & "\Connection"  
      objRegistry.GetExpandedStringValue HKEY_LOCAL_MACHINE, keyPath, "Name", conName  
    Next Adapter2
    s = s & conName
    Debug.Print s
  Next
End Function
Member: nilstk
nilstk Apr 04, 2006 at 22:50:20 (UTC)
Goto Top
Ich danke Dir erstmal, ich muss mal sehen inwieweit ich das umsetzen kann,
da ich in meiner Sprache einen DLL Aufruf benötige.
Member: misterdemeanor
misterdemeanor Apr 05, 2006 at 09:51:45 (UTC)
Goto Top
Ja, da weiß ich nicht inwiefern das mit diesem RapidQ möglich ist. Das einbinden von .dll's soll ja möglich sein, aber auch das erstellen? Wie Du es im vorigen Post andeutest kann in RapidQ nicht der Code direkt verwendet werden...?

Also die /hardwarebasierten/ Netzwerkverbindungen werden wohl in allen Win-OS Versionen ab 98 in SubKeys zu HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318} gespeichert. Von dort werden dann auch die Informationen für den Ordner Netzverkverbindungen geholt.
Mein Code ,macht nix anderes als diese Subkeys von "aktivierten" Adaptern aus der Registry zu lesen. Allerdings ist er soweit nicht wirklich einsetzbar. Sollte nur mal dazu dienen Dir eine Möglichkeit aufzuzeigen.

Kannst Du denn generell von Deiner Sprache aus auf die Registry zugreifen?

Grüße
Member: Biber
Biber Apr 15, 2006 at 07:50:35 (UTC)
Goto Top
Moin nilstk,

ist mit misterdemeanors Antwort Deine Frage nach dem Registry-Key beantwortet und kann dieser Thread geschlossen werden?

Grüße
Biber, Mod in diesem Bereich
Member: nilstk
nilstk Apr 15, 2006 at 12:05:22 (UTC)
Goto Top
Hallo,

ich danke für die zahlreichen Hilfen. Meine Frage ist erstmal beantwortet - weitgehend zumindest. Wie ich das umsetze, muss ich mir einmal überlegen. Vielen Dank auf jeden Fall und Frohe Ostern...