jeatrexs
Goto Top

Batch IP Lanverbindungname subnetzmaske und Gateway auslesen

Hallo leute,

ich brauche ma wieder eure Hilfe.

Ich habe ein Programm in VB6 geschrieben und da ich auf keinen Fall API schnittstellen benutzen möchte hätte ichs gerne über cmd gemacht.

Ich weiß dass es hier mehrere Threads darüber gibt, aber nie passt eins perfekt.. und Batch kann ich nur mäßig also kann ich die Skripts aus den anderen Threads nicht modifizieren...

Also ich bräuchte eine Batchdatei die folgende sachen ausliest und untereinander in eine Datei schreibt (ipsettings.txt):

Lanverbindungsname (nur wenn möglich)
Lan-IP Adresse
Subnetzmaske
Standardgateway

Wäre echt toll wenn mir jemand helfen könnte <:

danke euch

Gruß jeatrexs

Content-Key: 99751

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

Printed on: April 27, 2024 at 06:04 o'clock

Mitglied: 36831
36831 Oct 20, 2008 at 13:22:36 (UTC)
Goto Top
Moin,

Wie du Daten per CMD ausliest, solltest du so finden.
Um die Daten alle aufgelistet zu bekommen kannst du entweder
ipconfig /all
oder
netsh interface ip dump
verwenden.

MfG,
VW
Member: Dynadrate
Dynadrate Oct 20, 2008 at 14:45:27 (UTC)
Goto Top
Hallo!
Ich wollte nur kurz zu bedenken geben, dass ein Auslesen via Batch niemals perfekt funktionieren kann, da die Ausgabe sprachabhängig ist.
Member: bastla
bastla Oct 20, 2008 at 15:49:53 (UTC)
Goto Top
Hallo jeaTreXs!

Spricht für Dich auch etwas gegen die Verwendung von WMI? Falls nicht, dann zB
Private Sub Form_Load()
strComputer = "."  
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")  
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration")  

Adapters = ""  
For Each objItem In colItems
    Config = ""  
    If IsNull(objItem.IPAddress) Then
        Config = Config & ";"  
    Else
        Config = Config & Join(objItem.IPAddress, ",") & ";"  
    End If
    If IsNull(objItem.IPSubnet) Then
        Config = Config & ";"  
    Else
        Config = Config & Join(objItem.IPSubnet, ",") & ";"  
    End If
    If Not IsNull(objItem.DefaultIPGateway) Then
        Config = Config & Join(objItem.DefaultIPGateway, ",")  
    End If
    If Right(Config, 3) <> ";;" Then  
        Adapters = Adapters & vbCrLf & objItem.Index & ";" & Config  
    End If
Next
Adapters = Split(Mid(Adapters, 3), vbCrLf)

Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter")  

IDList = ""  
For Each objItem In colItems
    IDList = IDList & vbCrLf & objItem.Index & ";" & objItem.NetConnectionID  
Next
ID = Split(Mid(IDList, 3), vbCrLf)

For i = 0 To UBound(Adapters)
    AIndex = CInt(Split(Adapters(i), ";")(0))  
    For j = 0 To UBound(ID)
        If AIndex = CInt(Split(ID(j), ";")(0)) Then  
            Adapters(i) = Adapters(i) & ";" & Split(ID(j), ";")(1)  
            Exit For
        End If
    Next
Next

'Ausgabe des Ergebnisses  
For Each Adapter In Adapters
    MsgBox Adapter
Next
End Sub
Etwas umständlich wird das Ganze durch die Tatsache, dass nicht nur mehrere Netzwerkkarten, sondern auch die Möglichkeit mehrerer IP-Adressen je Karte zu berücksichtigen sind.

Grüße
bastla
Member: jeaTreXs
jeaTreXs Oct 20, 2008 at 20:54:22 (UTC)
Goto Top
@ vw

wie ich sie auslese ist mir klar.. aber ich möchte diese faktoren ja untereinander in eine Datei haben. das is ja auch das problem..