504
aqui
imebro
MrTrebron
ricochico
Skyemugen

Batch Ping Log oder alle aktiven Computer im netzwerk finden und protokollieren

Mitglied: TimoBeil
01.07.2010
00:43:42 Uhr
8754 Aufrufe
24 Antworten
Hin und wieder findet man ja Fragen, deren Antwort man mal wußte, deren Lösung aber dann nur mit "einigen anpassungen" funktionieren.

Oder andersherum, wie bekomme ich eine Liste aller eingeschalteten Computer samt der dazugehörigen IP Adresse, wenn kein DHCP Server im Einsatz ist
(Ja das ist eher ein Tipp keine Anleitung und eigentlich ne olle Kammelle, aber nach der Erfahrung der letzten Tage immer noch aktuell)

Der Titel ist hoffentlich aussagekräftig genug, um weitere Fragen für die Aufgabe (Problem wäre überzogen) im vorhinein zu beantworten und hoffentlich weitere Ideen von anderen mal "in einen Topf" zu werfen.
01.
rem der Code funktioniert und während der Laufzei kommt viel "unnützer" Text, also darf das @echo off hier gerne stehen 
02.
@echo off 
03.
rem um alle Rechner in seinem Subnetz zu finden, sollte man mal das "Netz" suchen - das Gateway wäre da doch ein Ansatzpunkt 
04.
rem anstatt - wie beim "alten" Script das Netzwerk als Variable zu nehmen, lassen wir das den Rechner rausfinden 
05.
rem es gibt ja auch inaktive NICs, die "erkennt" man aber beim Ipconfig 
06.
rem und zwar "so" (endlich mal "Quelltext") 
07.
for /f "tokens=2 delims=:" %%a in ('"ipconfig|find "gateway""') do (for /f "tokens=1,2,3 delims=." %%b in ("%%a") do if not "%%b"==" " call :netz %%b.%%c.%%d.) 
08.
rem verstanden, was die zwei Schleifchen, die sogar verschachtelt sind - machen - nein - dann ein rem vors @echo off schreiben und for das goto end eine Pause  ;-) 
09.
 
10.
goto end 
11.
 
12.
rem ein Class C Netzwerk hat ja 254 nutzbare Adressen, und mit dem Gateway kennen wir ja die ersten 3 oktette 
13.
rem und mit einer simplen Schleife hängen wir alle 254 Adressen als letztes Oktett an die vorher gefundenen ersten 3 Oktette dran. 
14.
rem Und weil 254 sekunden und ein paar zerquetschte ganz schön lang werden können, mit einer "Fortschrittsanzeige im Fenstertitel"   
15.
 
16.
:netz 
17.
for /l %%i IN (1,1,254) DO (title %1%%i && call :host %1%%i) 
18.
goto:eof 
19.
 
20.
:host 
21.
rem der Horst hat ja auch einen Namen, nur welchen? 
22.
for /f "tokens=2 delims= " %%A in ('ping -a %1 -n 1 ^| FIND "[%1]"') DO ECHO.%%A;%1>>mein_netz.log 
23.
goto:eof 
24.
 
25.
:end

Viele andere Wege führen nach Rom, viele davon findet man hier und ja ist per anno keine Anleitung, aber für die spätere Suche - als Anleitung vielleicht doch sinnvoller, als die ganzen Antworten auf ähnliche Fragen, die leider nicht so gefunden werden, wie man sich das beim schreiben gewünscht hat.

01.
rem dieser Ansatz ist eigentlich viel kürzer, denn das sind nur zwei Schleifen. 
02.
rem natürlich hat der aber auch wieder einen Haken, man findet so nur die Rechner, die in der Domain angemeldet sind - keine Drucker / Swutche usw. 
03.
rem aber weil die (noch) nicht verschachtelt sind mit einer "temporären" log Datei "aktive_systeme.log" die am Ende gelöscht wird 
04.
rem erstmal per Net view alle Systeme in eine Liste packen 
05.
rem besonderheit bei der Ausgabe von Net view - ist ja - der Rechnername steht hinter zwei \ (daher delims=\) 
06.
rem gefolgt von einer evtuellen Beschreibung - daher (delims=\ ) und das "Tokens=1,2" 
07.
rem die ersten drei Zeilen sind überschriften im großen Netz nur z.B durch ein Net view|more ersichtlich. 
08.
rem daher skip 3 
09.
rem und auch hier - das dauert und man will sehen, wo er gerade ist - daher ein Title in der Schleife  
10.
:script_start 
11.
@echo off 
12.
for /f "skip=3 tokens=1,2 delims=\ " %%a in ('"net view"') do ( 
13.
title %%a 
14.
ping %%a -n 1 |find "[">>aktive_systeme.log 
15.
16.
 
17.
rem jetzt die eben erstellte Liste um die "nutzlosen" Spalten bereinigen den Computername und dessen IP als CSV ausgeben  
18.
 
19.
for /f "tokens=2,3 delims=[] " %%a in (aktive_systeme.log) do echo %%a,%%b>>mein_netz.csv 
20.
rem die temoräre log Datei löschen 
21.
del aktive_systeme.log

weitere Funde zum Thema: (suchmaschinen optimierung?)
Ping LOG per Batch auswerten

Statt sich die lokale Ip per Ipconfig zu besorgen und da - je nach Betriebsystemsprache nach unterschiedlichen Texten zu suchen, geht natürlich auch:
01.
for /f "tokens=2 delims=[]" %%a in ('"ping %computername% -n 1|find "[""') do echo %%a

Und wenn jemand "mal eben kurz -auch ohne DHCP Server - die Mac Adresse eines Windows Systems wissen will..
01.
nbtstat -a Rechnername |find "MAC Adress" 
02.
rem bzw. 
03.
nbtstat -A IP.A.dre.sse |find "MAC Adress" 
04.
rem und wie das dann "schön" für alle Systeme und sortiert in einer Liste landet -siehe oben

Verbesserungsvorschläge immer gerne hierher face-wink
Diese Anleitung - bzw. der Script code ist Open Source und steht unter der Timobeil Lizenz - das bedeutet Erweiterungen sind gewünscht, müssen aber jederman/frau - hier - zugänglich gemacht werden.

Gruß

Mitglied: kkboy94
kkboy94 schreibt am 01.07.2010 um 15:57:43 Uhr
Hey,

Danke für die klasse Anleitung/den Tipp


 for /f "tokens=2 delims= " %%A in ('ping -a %1 -n 1 ^| FIND "[%1]"') DO ECHO.%%A;%1>>mein_netz.log 

Das habe ich jetzt schon des öfteren gesehen, aber ich habe noch nicht verstanden warum das pipe vor dem FIND mit ^ maskiert wird?

Ist es normal,dass auch noch die DNS-Suffixsuchliste mit im Log steht?
Mitglied: LotPings
LotPings schreibt am 01.07.2010 um 18:27:42 Uhr
Hallo Timo,

<klugscheissmodus>
im ersten Batch in Zeile 13 fehlt wohl ein rem oder davor ist ein Enter zuviel face-wink
In Zeile 12 sollte es korrekterweise heissen :
rem ein Klasse C Netzwerk hat ja 254 nutzbare Adressen...
</klugscheissmodus>

Gruß
LotPings
Mitglied: kkboy94
kkboy94 schreibt am 01.07.2010 um 19:00:21 Uhr
Man könnte doch auch in der ersten Batch anstatt nach dem Gateway zu suchen, einfach die Stelle in der Schleife hiermit ersetzen oder?
ipconfig/all | findstr "IP-Ad"
Dann würde ja jede IP-Adresse gesucht und davon dann jeweils die ersten 3 Oktette genommen. Liege ich mit der Annahme richtig?
Mitglied: TimoBeil
TimoBeil schreibt am 02.07.2010 um 06:34:19 Uhr
Zitat von kkboy94:
Hey,

Danke für die klasse Anleitung/den Tipp
schankedöhn.
 for /f "tokens=2 delims= " %%A in ('ping -a %1 -n 1 ^| FIND "[%1]"') DO ECHO.%%A;%1>>mein_netz.log
Das habe ich jetzt schon des öfteren gesehen, aber ich habe noch nicht verstanden warum das pipe vor dem FIND mit ^ maskiert
wird?
Das ist ein alter Hut - bzw. die Zeile hab ich mal irgendwann in meinem Script Ordner verstaut - der seit NT 3.51 mein Begleiter ist.
Früher - bevor es Findstr gab, wurde find immer mal wieder neu erfunden. Und da nur diese eine Zeile das | mit einem ^ maskiert siehst du auch, dass es nicht mehr nötig ist.

Ist es normal,dass auch noch die DNS-Suffixsuchliste mit im Log steht?
Nein - denn auch wenn das ein "Schnellschuss" war - ich hab mit Absicht Ipconfig genommen, nicht das IPconfig /all - und nur das wirft die DNS Searchsuffix mit aus.

Zitat von LotPings:
Hallo Timo,

<klugscheissmodus>
im ersten Batch in Zeile 13 fehlt wohl ein rem oder davor ist ein Enter zuviel face-wink
In Zeile 12 sollte es korrekterweise heissen :
> rem ein Klasse C Netzwerk hat ja 254 nutzbare Adressen... 
> 
</klugscheissmodus>

Gruß
LotPings
@Lotofpinks - schau mal auf die Uhrzeit und danke für den Hint face-wink

Zitat von kkboy94:
Man könnte doch auch in der ersten Batch anstatt nach dem Gateway zu suchen, einfach die Stelle in der Schleife hiermit
ersetzen oder?

Siehste - was wollte uns der Autor mit seiner Geschichte erzählen?
Anregen selber weiter zu denken face-wink

ipconfig/all | findstr "IP-Ad"
Ja - aber bei Notenbüchern mit Wlan, VPN Tunnel usw. wäre das dann extrem komplex und deshalb hab ich den Weg gewählt - der Natürlich dann - wenn es nur ein Netz ohne Gateway gibt - auch nicht funktioniert.

Dann würde ja jede IP-Adresse gesucht und davon dann jeweils die ersten 3 Oktette genommen. Liege ich mit der Annahme
richtig?
Theoretisch - ursprünglich wollte ich ja - aber dann war ich doch zu müde noch aufzeigen - wie man die Subnetzmaske auswertet - denn und da ist mit Lot zuvorgekommen - das "Ding" geht ja vom std. aus - ein Netz (bzw. ein IP Bereich) -das bei 0 anfängt und dessen Broadcast die 255 ist.

Ehrlicherweise hab ich mir dann beim schreiben gedacht, wer "das" (sein Netz) so einrichtet, hat mit der Batch eh nix am tuten - denn der hat nen DHCP, dem er mit einem einzeiler den ganzen tobuhabohu ausgeben kann.
01.
netsh dhcp server scope (netz) show clients 1>logfile.ini

Gruß
Mitglied: kkboy94
kkboy94 schreibt am 02.07.2010 um 18:13:54 Uhr
Zitat von TimoBeil:

> Ist es normal,dass auch noch die DNS-Suffixsuchliste mit im Log steht?
Nein - denn auch wenn das ein "Schnellschuss" war - ich hab mit Absicht Ipconfig genommen, nicht das IPconfig /all - und
nur das wirft die DNS Searchsuffix mit aus.


Ist es also nicht möglich die DNS Searchsuffix rasuzunehmen?


Gruß zurück
Mitglied: TimoBeil
TimoBeil schreibt am 02.07.2010 um 18:34:01 Uhr
moin,

Zitat von kkboy94:
> Zitat von TimoBeil:

> > Ist es normal,dass auch noch die DNS-Suffixsuchliste mit im Log steht?
> Nein - denn auch wenn das ein "Schnellschuss" war - ich hab mit Absicht Ipconfig genommen, nicht das IPconfig /all
- und
> nur das wirft die DNS Searchsuffix mit aus.


Ist es also nicht möglich die DNS Searchsuffix rasuzunehmen?


Gruß zurück
du sorry, aber ich hab mir die Mühe gemacht ein mindesten 3* von mir behandeltes Thema (Wunsch von anderen) und ich bin ganz sicher garantiert nicht der einzige - nochmal aufzugreifen und etwas aufzuhübschen, weil ich die OT und in eine andere Richtung führenden Fragen für leicht schwierig nachzulesen gehalten habe.
Wenn - was ich nicht mache - ich hier also irgendwas dazu schreibe - dann findest doch keiner, der lieber nach 3 sek. suchen nix findet und lieber ne neue Frage stellt?

Gruß
Mitglied: lowbyte1
lowbyte1 schreibt am 03.07.2010 um 04:10:32 Uhr
Hi

@TimoBeil

Gute Anleitung...
aber ein bisschen mager, bzw. zu langsam findes du nicht ? ( meine den Scan ).

Hier meine Variante die ein Class-C Subnet in 5-10Sec. Scannt. Vileicht kannst du ja was gebrauchen.

http://www.administrator.de/index.php?con ...

Noch etwas anderes, meiner Meinung nach am Wichtigsten für dein Artikel.
Bei deinem Scan bedienst du dich beim Programm Ping.exe (Baut auf ICMP auf) ,und verlässt dich auch darauf !??
Viele Standard Software Firewall's wie di von Microsoft, blockieren einen Ping(ICMP Type 8 ,Code 0) ! Darum kannst du nicht davon ausgehen, wen dein Pingprogramm nichts erkennt, das der Host auch offline ist !! Villeicht ist er Online und blockiert ICMP!
Aber was du machen kannst ist, den Arp-cache auszuwerten, nachdem du das ganze Subnet gepingt hast (Arp -a) ! Die Adressen(host's) die dann im Arp-cache stehen,sind dan ONLINE !!.
Mein Programm baut auf dieser Methode auf, und erkennt auch Systeme die durch eine Firewall geschützt sind.


lowbyte
Mitglied: kkboy94
kkboy94 schreibt am 03.07.2010 um 14:44:01 Uhr
Fällt mir auch jetzt erste auf, dass es solange dauert....

Warum dauert es eigentlich solange?
Mitglied: lowbyte1
lowbyte1 schreibt am 03.07.2010 um 15:50:18 Uhr
Hi

Das liegt an der Ping Timelimit, die man mit dem Parameter -w setzen kann.
Und bei Timobeil's Beispielcode, sind es sicher auch die DNS request's und der Netbios name service, eben je nach dem.


lowbyte
Mitglied: LotPings
LotPings schreibt am 03.07.2010 um 16:40:50 Uhr
Hallo lowbyte,

schöner Batch mit dem Arp.

Ich habs etwas eingedampft (vor allem ohne temporäre Dateien),
und füge dem Log nur neue IPs in sauber ausgerichteten Spalten zu:
01.
@Echo off&SetLocal EnableDelayedExpansion 
02.
Set Range=192.168.2 
03.
Set MacList="%~dp0\IEEEMACLIST.txt" 
04.
Set LOG=^>^>"%~dpn0.Log" 
05.
Set Start=%time% 
06.
Echo Scan vom %Date% %time:~,-3% %Log%" 
07.
Arp -d 
08.
For /L %%A in (1,1,255) do Start /HIGH /B ping.exe -n 1 -l 0 -f -i 2 -w 1 %Range%.%%A >nul 
09.
For /f "Tokens=1,2" %%A in ( 
10.
  'arp -a ^|find "%Range%"^|findstr /i "dynamisch dynamic statisch static"' 
11.
) Do ( 
12.
  Set "MAC=%%B" 
13.
  Set "Make=n/a" 
14.
  For /f "tokens=2*" %%C in ('findstr /i "!MAC:~0,8!" %MacList%') do Set Make="%%D" 
15.
  Call :ProcessLine %%A %%B !Make! 
16.
17.
Echo Beginn: %Start% & Echo Fertig: %time% 
18.
Goto :Eof 
19.
:ProcessLine 
20.
Set "IP=%1      " 
21.
:: prüfen ob schon da 
22.
Findstr "%1.*%2" %LOG:~2% >NUL && (Echo Schon da: %IP:~0,15% %2 %~3 & Goto :Eof) 
23.
      Echo %IP:~0,15% %2 %~3 
24.
%LOG% Echo %IP:~0,15% %2 %~3
Das Log hat den gleichen Namen wie die Batch mit der Erweiterung Log.

Gruß
LotPings
Edit: Fehler beseitigt.
Edit2: Herstellererkennung überarbeitet
Mitglied: lowbyte1
lowbyte1 schreibt am 03.07.2010 um 18:42:20 Uhr
Hi

Danke.

Dass wollte ich schon längst mal machen. Doch ich schrieb ein Arp-scanner in C und der ist performanter und macht nicht so lärm : ( keine icmp request's mehr, nur Arp).

Aber nett danke.
Aber trotzdem solltest du bei deinem Scan die Geschwindikeit beachte. Meine batch hat 255 adressen in 5-10 sec gescannt. Das ist bei dir sicher nicht der fall.


lowbyte
Mitglied: LotPings
LotPings schreibt am 03.07.2010 um 19:54:06 Uhr
Zitat von lowbyte1:
Aber nett danke.
Aber trotzdem solltest du bei deinem Scan die Geschwindikeit beachte. Meine batch hat 255 adressen in 5-10 sec gescannt.
Das ist bei dir sicher nicht der fall.
Stimmt,
da meine Version die gleiche Technik,
aber keine überflüssigen temporären Batchdateien nutzt,
ist es (auf meinem Notebook über WLan) UNTER 5 Sekunden schnell.

Leider hat es mein DSL während des Fußballspiels durch Gewitterüberspannung gehimmelt,
ich muss jetzt die Ergebnisse manuell über des Nachbarn WLan übertragen
.
Mein Desktop mit core i7-920 braucht im Gbit-Lan nur 1 Sekunde 67 Hundertstel face-wink

Gruß
LotPings
Mitglied: lowbyte1
lowbyte1 schreibt am 03.07.2010 um 21:37:24 Uhr
Hi

Ok, habs mal durchlaufen lassen ,der letzte gebrauch dieses Scriptes von mir ist auch schon 2-3 Jahre her.
Auf meinem Intel i7-920 @ oc 4*3,8 ghz schafe ich es in 3 sec.
Das C - Programm in 0.5 bis 1 je nach net last. Sec. !
Aber dein Batch ist schon sauberer, das muss ich zugeben. Bin auch nicht wirklich ein "Hirsch" in Batch. Gibt viele die das besser Können, ich bin halt ein C narr. ;) Aber wen man nur Sys Mittel (hat) sicher eine gute lösung.
Setze sowiso nur noch die C Version ein... (professioneller & Silent & ARP only etc.. etc...

lowbyte
Mitglied: TimoBeil
TimoBeil schreibt am 03.07.2010 um 22:57:07 Uhr
Zitat von lowbyte1:
Hi

Das liegt an der Ping Timelimit, die man mit dem Parameter -w setzen kann.
Und bei Timobeil's Beispielcode, sind es sicher auch die DNS request's und der Netbios name service, eben je nach dem.#

Das Ding gehört halt nicht zur Sorte Quick & Dirty - es findet - im Gegensatz zu Lowbytes Version auch meine Apples und das ganze andere "Gedöhns" das in meinem Netz IP spricht - andererseits - meine Firewall keine vom Baumarkt und ordentlich konfiguriert kickt mich (meinen Nic) auch nicht, wie es die andere macht.

Mir persönlich ists wurst, ob ich in einem undokumentierten Netz ohne DHCP nun 255 sekunden oder 3 sekunden brauch um ne Liste der aktiven Systeme zu bekommen - ich hab kein undokumentiertes Netz und Switche, die ich mit Telnet ansprechen kann.

Es ging um ein funktionierendes Beispiel wie man Befehle - die etwas "formatiert" ausgeben irgendwie zu was sinnvollem verhakstückeln kann.
Nicht darum auid einer Batch 255 zweizeilerbatche zu schreiben, die dank kurzem Timellimit usw nur Kisten anzeigen, die grade irgendwas mit dem Netz machen.

Meine Squeezeboxen findet das lowbytsche script - das ich so umgeschrieben habe - das es etwas lahmer läuft 3zeiler - mit der neuen 2.Zeile ping localhost >nul
- nur dann, wenn die gerade aktiv am Server (nicht die Kiste, von der ich das Script starte) saugen und "pumpen" und "so" kickt mich auch die Sonicwall nicht raus und ich muß mit dem Eiphone die Sonicwall beharken, damits Notenbuch wieder reindarf.

Gruß


edit @ low - schon gut - aber beim Cisco braucht man den ganzen Driet eh nicht, egal - ob in B oder C geschrieben - denn ein Cisco kann nur mit nem Shell Script face-wink
Und nein - nicht mal die Dübel mit denen die Sonicwall an der Wand hängt kommen vom Baumarkt - die waren dabei face-wink.
Mitglied: TimoBeil
TimoBeil schreibt am 04.07.2010 um 00:17:46 Uhr
Zitat von LotPings:
Hallo lowbyte,

Ich habs etwas eingedampft (vor allem ohne temporäre Dateien)
...und ich habs wieder aufgeblasen und auch etwas flüssiges bei deinem Code gekickt
01.
@Echo off&SetLocal EnableDelayedExpansion 
02.
:parameter definieren 
03.
for /f "tokens=2,3,4 delims=[.]" %%a in ('"ping %computername% -n 1|find "[""') do Set Range=%%a.%%b.%%c 
04.
Set MacList="%~dp0\IEEEMACLIST.txt" 
05.
Set LOG=^>^>"%~dpn0.Log" 
06.
Set Start=%time% 
07.
 
08.
:check 
09.
if exist %MacList% goto scan 
10.
wget --help>nul && goto wget 
11.
 
12.
:makegetIEEEMACLIST.html 
13.
echo merde - keine IEEEMACLIST.txt und kein wget, bitte den Link in der Webseite speichern unter %maclist% 
14.
echo ^<html^> >getIEEEMACLIST.html 
15.
echo ^<body^> >>getIEEEMACLIST.html 
16.
echo ^<a href="http://standards.ieee.org/regauth/oui/oui.txt"^>rightklick save as IEEEMACLIST.txt and store in root of the script^</a^> >>getIEEEMACLIST.html 
17.
echo ^</body^> >>getIEEEMACLIST.html 
18.
echo ^</html^> >>getIEEEMACLIST.html 
19.
start /wait "getIEEEMACLIST" getIEEEMACLIST.html 
20.
if not exist %maclist% echo schade aber auch - war nur eine textdatei, kein Virus && goto scan 
21.
 
22.
:wget 
23.
echo cool die IEEEMACLIST.txt wurde zwar nicht gefunden, aber Wget - dont do nothing ill doit 4u 
24.
wget http://standards.ieee.org/regauth/oui/oui.txt -OIEEEMACLIST.txt 
25.
 
26.
:scan 
27.
Echo Scan vom %Date% %time:~,-3% %Log%" 
28.
Arp -d 
29.
For /L %%A in (1,1,255) do Start /HIGH /B ping.exe -n 1 -l 0 -f -i 2 -w 1 %Range%.%%A >nul 
30.
For /f "Tokens=1,2" %%A in ( 
31.
  'arp -a ^|find "%Range%"^|findstr /i "dynami stati"' 
32.
) Do ( 
33.
  Set "MAC=%%B" 
34.
  Set "Make=n/a" 
35.
  For /f "tokens=2*" %%C in ('findstr /i "!MAC:~0,8!" %MacList%') do Set Make="%%D" 
36.
  Call :ProcessLine %%A %%B !Make! 
37.
38.
Echo Beginn: %Start% & Echo Fertig: %time% 
39.
Goto :Eof 
40.
:ProcessLine 
41.
Set "IP=%1      " 
42.
:: prüfen ob schon da 
43.
Findstr "%1.*%2" %LOG:~2% >NUL && (Echo Schon da: %IP:~0,15% %2 %~3 & Goto :Eof) 
44.
      Echo %IP:~0,15% %2 %~3 
45.
%LOG% Echo %IP:~0,15% %2 %~3

Gruß
btw: das - durch die nicht 255 gleichzeitigen Ping funktioniert deutlich besser, als der Lowbytsche Versuch einen angry ip Scanner zu bauen face-wink
Die Sonicwall mag auch nach 3* laufen lassen mein Notebook noch.

Aber

- eine Kiste wie z.b Drucker im Tiefschlaf - findet diese kurzping Version natürlich genausowenig, weil Ihre beide euch den gleichen Tricks bedient.
Und von daher - ich schriebs schon anders - lieber gar keine Liste, als eine, die nicht alles zeigt (es war ja eigentlich auch nur proof of concept).
Mitglied: lowbyte1
lowbyte1 schreibt am 04.07.2010 um 05:55:43 Uhr
Hi

Mir persönlich ists wurst, ob ich in einem undokumentierten Netz ohne DHCP nun 255 sekunden oder 3 sekunden brauch um ne Liste der aktiven Systeme zu bekommen - ich hab kein undokumentiertes Netz und Switche, die ich mit Telnet ansprechen kann.

Du musst mich nicht mit andern verwechseln ! Ok !

Sonicwall

Und da drüber lässt sich auch streiten ! Baumarkt? nicht? ;)

Bei mir läuft nur Cisco und 3Com ! Alles ander... bis auf wenige... naja !

Aber sonnst schon ok. Wie gesagt ich nutze mein C Programm, da muss ich auf nichts verzichten ,nicht mal auf Geschwindikeit ( Multible dns requests) etc..


ps: Timobeil, musst es nicht so eng sehen. Finde dein Beitrag dennoch gut ! Gibt (nicht viele User) hier die sich die mühe machen würden.

edit:

eine Kiste wie z.b Drucker im Tiefschlaf - findet diese kurzping Version natürlich genausowenig, weil Ihre beide euch den gleichen Tricks bedient.
Und von daher - ich schriebs schon anders - lieber gar keine Liste, als eine, die nicht alles zeigt.

Ich will ja die aktiven Systeme, und nicht die die im Tiefschlaf sind !!



lowbyte
Mitglied: TuXHunt3R
TuXHunt3R schreibt am 05.07.2010 um 22:36:39 Uhr
Hallo ans Forum

Angry IP-Scanner ist für mich hier das Mittel der Wahl, auch wenn manche Virenscanner das Teil als Malware klassifizieren.
Hab früher zu Post-Zeiten (als ich noch nicht Herr über das ganze Netzwerk war und es eine eigene Security-Abteilung gab) mit einem ähnlichen Batch hantiert.
Angry-IPScanner läuft aber bedeutend schneller, da es immer für 64 Ping-Befehle je einen eigenen Thread eröffnet. Ein C-Netz hat man damit in ein paar Sekunden durchgegrast, und die Ergebnisse stimmen garantiert.
Und es muss nicht mal installiert werden, ist eine selbstlaufende Exe:
http://www.angryip.org/w/Home

Gruss
TuXHuNT3R
Mitglied: lowbyte1
lowbyte1 schreibt am 05.07.2010 um 22:56:42 Uhr
Hi

Finde den, nicht gerade das ware. Nmap oder etwas vergleichbares, ist 100mal besser! Fyodor finde ich in der entwicklung von security scannern, praktisch unschlagbar!

Lowbyte
Mitglied: kkboy94
kkboy94 schreibt am 06.07.2010 um 18:41:23 Uhr
Ich persönlich bin auch eher für Angry IP-Scanner. Benutze ich auch selber, und hab auch direkt nen Script dafür geschrieben.


Aber eigentlich is das doch Off Topic.

MfG Karsten
Mitglied: lowbyte1
lowbyte1 schreibt am 06.07.2010 um 19:51:43 Uhr
hi

Du kannst eigentlich benutzen was du willst. Doch wir müssen wohl nicht daruber streiten welcher davon viel professioneler ist!!
Aber für ottonormal verbraucher reicht argerscanner sicher ;)


lowbyte
Mitglied: o0ByteRebel0o
o0ByteRebel0o schreibt am 13.07.2010 um 16:03:57 Uhr
Moin

gefällt mir gut und gibt mir noch ein paar Ideen die ich noch in Powershell umsetzen kann.
So etwas in der Art kann man übrigens auch mit einem 2 Zeiler inPowershell machen (ok, etwas längere Zeilen face-wink ). Kleines Beispiel (bis jetzt allerdings etwas weniger Features wie deine Batch):

## einen Bereich durchpingen und bei erfolgreichem Ping DNS Name und IP ausgeben
## dem Skript müssen 3 Werte beim Aufruf übergeben werden, die mit Leerzeichen getrennt sind
## Beispiel:
## BereichPingen.ps1 12 50 54
## In dem Beispiel wird der Bereich 10.155.12.50 bis 10.155.12.54 gepingt.

$bereich = $args[0]
$args[1]..$args[2] | foreach-object {if (test-connection -computername 10.155.$bereich.$_ -count 1 -quiet) {[net.dns]::gethostbyaddress("10.155.$bereich.$_")}} | select hostname,addresslist


Gruß
Mitglied: LotPings
LotPings schreibt am 13.07.2010 um 20:28:56 Uhr
Hallo BYteRebel,

das funktioniert hier nur, wenn der Punkt zwischen $bereich und $_ mit einem ` escaped wird.
Es wäre schön wenn du Code in die entsprechenden Code Tags aus der Formatierungshilfe einbetten würdest.

Ein festes Netzwerk im Code schränkt die Nutzung auf ein, kann man doch gleich komplett übergeben.

Gruß
LotPings
Mitglied: o0ByteRebel0o
o0ByteRebel0o schreibt am 14.07.2010 um 09:29:51 Uhr
Moin moin

habs gerade noch mal durchlaufen lassen, bei mir läufts aber ohne das der Punkt escaped wird.
Danke für den Tipp mit der Formatierungshilfe, werd beim nächsten mal dran denken face-smile

Na ja, wollte mir nur Tipparbeit sparen, weil ich es eigentlich immer nur im 10.155er Bereich einsetze. Wenn man es flexibler braucht, kann man natürlich auch die Range komplett übergeben.

CU
Mitglied: buettel
buettel schreibt am 11.10.2010 um 14:23:37 Uhr
Ich habe mir auch ein solches Tool gebastelt aber nivßcht mit einer so schön formatierten Ausgabe. Aber sehr hilfreich.

01.
title arptabelle_erstellen 
02.
rem ### Wolfgang Risse 
03.
rem ### www.risse.net 
04.
rem ### erstellt am 19.06.2010 
05.
rem ### getestet unter Windows XP 
06.
rem ### Die Benutzung ist nur einem privaten Subnetz erlaubt 
07.
rem ### Urheberrechte gibts nicht 
08.
 
09.
 
10.
 
11.
mode con cols=20 lines=50 
12.
color 61 
13.
@echo off 
14.
set pausendauer=3 
15.
for /F "tokens=14" %%i in ('ipconfig^|find "IP-Ad"') do set IP=%%i 
16.
 
17.
for /F "tokens=1,2,3 delims=." %%i in ('echo %IP%') do set IPraum=%%i.%%j.%%k. 
18.
 
19.
 
20.
rem ### windows kann nur 120 cmd Sitzungen gleichzeitig ausführen 
21.
 
22.
FOR /L %%i in (1;1;100) do ( 
23.
start cmd /c ping -l 1 -w 1 -n 1 %IPraum%%%i 
24.
echo %IPraum%%%i ) 
25.
ping -n %pausendauer% localhost > nul 
26.
 
27.
FOR /L %%i in (101;1;201) do ( 
28.
start cmd /c ping -l 1 -w 1 -n 1 %IPraum%%%i 
29.
echo %IPraum%%%i ) 
30.
ping -n %pausendauer% localhost > nul 
31.
 
32.
FOR /L %%i in (201;1;254) do ( 
33.
start cmd /c ping -l 1 -w 1 -n 1 %IPraum%%%i 
34.
echo %IPraum%%%i ) 
35.
 
36.
color cf 
37.
echo . 
38.
echo Arp Tabelle 
39.
echo wird erstellt! 
40.
echo . 
41.
ping -n 8 localhost > nul 
42.
arp -a > arp.txt 
43.
write arp.txt      
44.
ping -n 5 localhost > nul 
45.
rem del arp.txt 
46.
 
mehr ...Ähnliche Beiträge