belzi
Goto Top

erkennung dynamisch oder statisch

Hallo!
Ich suche eine Funktion/Tool, mit dem ich erkennen kann, wie die Clients im Netz sind, mit dynamsicher oder statischer IP.
Habe schon diverse Tools probiert, bin aber noch nicht fündig geworden.

Gruß,
Belzi

Content-ID: 43044

Url: https://administrator.de/forum/erkennung-dynamisch-oder-statisch-43044.html

Ausgedruckt am: 23.12.2024 um 05:12 Uhr

n.o.b.o.d.y
n.o.b.o.d.y 25.10.2006 um 21:32:20 Uhr
Goto Top
Hallo,

brauchst doch nur die IPs zu vergleichen, denn die Rechner am DHCP liegen in einer anderen Range als die PCs mit festen IPs.

Oder was genau soll das Ziel der Übung sein?

Ralf
Belzi
Belzi 25.10.2006 um 21:39:23 Uhr
Goto Top
Eben nicht.
Es sind wohl IPs aus dem DHCP-Range wegen falscher Gateway-Zuweisung fest vergeben worden und jetzt will ich nicht warten, bis es zu IP-Konflikten kommt, bzw. an jeden Client rennen.
bastla
bastla 26.10.2006 um 00:58:51 Uhr
Goto Top
Hallo Belzi!

Man könnte das Problem in Teilschritten in Angriff nehmen:

1) Liste aller Computer erstellen
2) Auf Basis der bei 1) erstellten (und ev editierten Liste) die relevanten IP-Daten auslesen
3) Das Ergebnis von 2) in Form einer csv-Datei zB in Excel importieren und weiter auswerten (insbes. sortieren)

zu 1) MakeCompList.vbs
strCompListe = "C:\Computers.txt"  
strDom = "testdom"  
strSuff = "local"  

Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")  
Set objCommand =   CreateObject("ADODB.Command")  
objConnection.Provider = "ADsDSOObject"  
objConnection.Open "Active Directory Provider"  

Set objCOmmand.ActiveConnection = objConnection
objCommand.CommandText = _
    "Select Name, Location from 'LDAP://DC=" & strDom &",DC=" & strSuff & "' " _  
        & "Where objectClass='computer'"    
objCommand.Properties("Page Size") = 1000  
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE   
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst

Set fso = CreateObject("Scripting.FileSystemObject")  
Set objCompFile = fso.CreateTextFile(strCompListe, True)
Do Until objRecordSet.EOF
    objCompFile.WriteLine(objRecordSet.Fields("Name").Value)  
    objRecordSet.MoveNext
Loop
objCompFile.Close
MsgBox "Computerliste in " & strCompListe & " erstellt."  
Die ersten 3 Zeilen sind an die jeweiligen Gegebenheiten anzupassen.

zu 2) GetIPInfo.vbs
strCompListe = "C:\Computers.txt"  
strIPListe = "C:\IPAdressen.csv"  

Set fso = CreateObject("Scripting.FileSystemObject")  
Set objCompFile = fso.OpenTextFile(strCompListe, 1)
Set objIPFile = fso.CreateTextFile(strIPListe, 2, True) 'oder 8, wenn an bestehende Liste angehängt werden soll  
Do While Not objCompFile.AtEndOfStream
	strComputer = objCompFile.ReadLine
	Set objWMIService = GetObject("winmgmts:" _  
		& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")  

	Set colAdapters = objWMIService.ExecQuery _
		("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")  
 
	For Each objAdapter in colAdapters
		strErgebnis = strComputer
		If Not objAdapter.DHCPEnabled Then
			strErgebnis = strErgebnis & ";statisch"  
		Else
			strErgebnis = strErgebnis & ";dynamisch"	  
		End If
		strErgebnis = strErgebnis & ";" & _  
					Chr(34) & objAdapter.Description & Chr(34) & _
					";" & objAdapter.DNSHostName  
		If Not IsNull(objAdapter.IPAddress) Then
			strErgebnis = strErgebnis & ";" & objAdapter.IPAddress(0)  
		Else
			strErgebnis = strErgebnis & ";Keine IP"  
		End If
		objIPFile.Writeline strErgebnis
	Next
Loop
objCompFile.Close
objIPFile.Close
MsgBox "IP-Liste in " & strIPListe & " erstellt."  
Auch hier sind die (beiden) Zeilen am Beginn des Scripts anzupassen.

Ergebnis ist eine Datei mit je einer Zeile pro Netzwerkadapter jedes Computers, wobei für jeden Adapter nur die erste zugewiesene IP-Adresse angegeben wird. Beispiel (Felder Computername bei Aufruf;Adresstyp;Name des Adapters;ermittelter Hostname;erste IP-Adresse):
SERVER;statisch;"Intel DC21140 PCI Fast Ethernet Adapter";server;192.168.1.2  

HTH
bastla
Belzi
Belzi 26.10.2006 um 09:21:48 Uhr
Goto Top
Hi bastla,

zunächst besten Dank für die fundierte Antwort.
Leider läuft das erste Makro auf den Fehler "Die Tabelle ist nicht vorhanden" in
Zeile "Set objRecordSet = objCommand.Execute"

Gruß,
Belzi
erikro
erikro 26.10.2006 um 10:39:49 Uhr
Goto Top
Hallo zusammen,

Eben nicht.
Es sind wohl IPs aus dem DHCP-Range wegen
falscher Gateway-Zuweisung fest vergeben
worden und jetzt will ich nicht warten, bis
es zu IP-Konflikten kommt, bzw. an jeden
Client rennen.

Wenn ich Dich recht verstehe, willst Du erstmal eine Liste aller IPs mit dem zugehörigen Namen haben, um sehen zu können, welche PCs feste IPs haben, die zum Range des DHCP-Servers gehören. Das würde ich folgendermaßen lösen.

1. Broadcast an alle Rechner. Dazu könntest Du z. B. einen broadcast ping (geht nur mir UNIXen) oder ein net send * absetzen. Jedes andere Tool, das einen Broadcast erzeugt, geht auch.

2. Dann tippst Du kurz darauf auf der Konsole arp -a. Das liest die arp-Tabellen aus. Dann hast Du eine Liste aller Rechner im Netz mit Namen, IP und MAC-Adresse. (Ich hoffe -a macht unter Windows das Gleiche wie unter UNIX).

3. Die Liste vergleichst Du mit den dynamischen Einträgen im DNS-Server. Die, die beim DNS-Server fehlen, sind die Rechner, die feste IPs aus dem dynamischen IP-Bereich bekommen haben.

hth

Liebe Grüße

Erik
Belzi
Belzi 26.10.2006 um 11:45:25 Uhr
Goto Top
3. Die Liste vergleichst Du mit den
dynamischen Einträgen im DNS-Server.
Die, die beim DNS-Server fehlen, sind die
Rechner, die feste IPs aus dem dynamischen
IP-Bereich bekommen haben.

hth

Liebe Grüße

Erik

Hallo Erik,

das war der Tipp, auf den ich nicht gekommen bin. Ein Tool zum Listen der IPs samt Client-Infos habe ich, die brauch ich nur mit den dynamischen Einträgen im DHCP-Server zu vergleichen. Hätte ich auch selbst drauf kommen können, bin ich aber nicht.

Besten Dank!
bastla
bastla 26.10.2006 um 11:51:54 Uhr
Goto Top
Hallo Belzi!

In der obigen Form wird die Domäne "testdom.local" angenommen (siehe Zeilen 2 und 3). Wenn Du die Einträge an Deine Domäne anpasst, sollte es klappen,

Grüße
bastla
erikro
erikro 27.10.2006 um 22:16:33 Uhr
Goto Top
Tja, manchmal sieht man halt den Wald vor lauter Bäumen nicht. *g*

Schön, dass ich Dir helfen konnte.

Liebe Grüße

Erik