Batch - nslookup Ausgabe auf Treffer einschränken
Hallo ihr Lieben
Ich habe viele Netze und muss die dann und wann nach DNS Einträgen scannen.
Leider schaffe ich es nicht, die Ergebnisse zu sortieren, schreibe also alle in die .txt und scrolle dann durch.
Weiß jemand einen Weg, wie ich die Ergebnisse von nslookup (Stichwort errorlevel) nutzen kann oder einen anderen Weg, damit nur die Treffer geschrieben bzw. angezeigt werden?
Mein Code: (leicht gekürzt, erstreckt sich natürlich auf ein ganzes .255 und grafische Elemte sind vorhanden zur optischen Trennung)
Grüße ... euer Nollosch
Ich habe viele Netze und muss die dann und wann nach DNS Einträgen scannen.
Leider schaffe ich es nicht, die Ergebnisse zu sortieren, schreibe also alle in die .txt und scrolle dann durch.
Weiß jemand einen Weg, wie ich die Ergebnisse von nslookup (Stichwort errorlevel) nutzen kann oder einen anderen Weg, damit nur die Treffer geschrieben bzw. angezeigt werden?
Mein Code: (leicht gekürzt, erstreckt sich natürlich auf ein ganzes .255 und grafische Elemte sind vorhanden zur optischen Trennung)
@echo off
title Netz nslookup
set time=%time:~0,2%-%time:~3,2%-%time:~6,2%
set date=%date%
if exist c:\nslookup.txt goto :copy
if not exist c:\nslookup.txt goto :ns
:copy
move /y c:\nslookup.txt c:\nslookup__%date%_%time%.txt
:ns
ECHO.
ECHO Vor dem Ausfhren Netzbereich w„hlen! Beispiel: 10.2.3
ECHO.
set /p var=Netzbereich eingeben:
nslookup %var%.1>>c:\nslookup.txt
nslookup %var%.2>>c:\nslookup.txt
nslookup %var%.3>>c:\nslookup.txt
ECHO %date%_%time%>>c:\nslookup.txt
start c:\nslookup.txt
pause
sorry wegen fehlender Formatierung, ist mir leider nicht ersichtlich wie das hier gemacht wird !!!
10 Antworten
- LÖSUNG Skyemugen schreibt am 21.10.2011 um 14:53:07 Uhr
- LÖSUNG Weiricth schreibt am 21.10.2011 um 18:27:40 Uhr
- LÖSUNG Nollosch schreibt am 21.10.2011 um 20:58:03 Uhr
- LÖSUNG Weiricth schreibt am 21.10.2011 um 22:12:16 Uhr
- LÖSUNG Skyemugen schreibt am 23.10.2011 um 09:58:06 Uhr
- LÖSUNG Nollosch schreibt am 25.10.2011 um 13:01:41 Uhr
- LÖSUNG Skyemugen schreibt am 25.10.2011 um 13:57:06 Uhr
- LÖSUNG Nollosch schreibt am 25.10.2011 um 17:17:25 Uhr
- LÖSUNG Nollosch schreibt am 31.10.2011 um 17:31:10 Uhr
- LÖSUNG Skyemugen schreibt am 01.11.2011 um 07:43:17 Uhr
- LÖSUNG Nollosch schreibt am 31.10.2011 um 17:31:10 Uhr
LÖSUNG 21.10.2011 um 14:53 Uhr
Aloha,
... da du uns nicht respektieren möchtest (was bei uns in Form von einer Begrüßung und einem Abschlussgruß i.d.R. gepflegt wird), verweise ich dich einfach nur die lustigrote Schrift mit dem Wort Formatierungshilfe, die beim Erstellen von Beiträgen und Kommentaren durchaus ins Auge hämmert, wo du dann <code></code> Tags findest ...
Was den Rest angeht, wenn der EP stimmt, bin ich auch bereit zu helfen (und viele andere auch ...)
greetz André
P.S.: Seltsam, du hast schon einmal die Codeformatierung gefunden, dort aber keine Begrüßung, dann wieder den Respekt entgegengebracht aber keine Formatierung und heute keines von beiden ... bedauerlich
... da du uns nicht respektieren möchtest (was bei uns in Form von einer Begrüßung und einem Abschlussgruß i.d.R. gepflegt wird), verweise ich dich einfach nur die lustigrote Schrift mit dem Wort Formatierungshilfe, die beim Erstellen von Beiträgen und Kommentaren durchaus ins Auge hämmert, wo du dann <code></code> Tags findest ...
Was den Rest angeht, wenn der EP stimmt, bin ich auch bereit zu helfen (und viele andere auch ...)
greetz André
P.S.: Seltsam, du hast schon einmal die Codeformatierung gefunden, dort aber keine Begrüßung, dann wieder den Respekt entgegengebracht aber keine Formatierung und heute keines von beiden ... bedauerlich
LÖSUNG 21.10.2011 um 18:27 Uhr
lad dir von microsoft des visual studio express ist kosten los
http://www.microsoft.com/germany/express/
und machs in vb dann hast kein problem mit nix und du kannst des machen wie du es brauchst.
http://www.microsoft.com/germany/express/
und machs in vb dann hast kein problem mit nix und du kannst des machen wie du es brauchst.
LÖSUNG 21.10.2011 um 20:58 Uhr
boar Leute, wie seid ihr drauf.
Ich bin auf Arbeit und kann nicht Ewigkeiten mit Freundlichkeiten und Formatierungen verbringen!
Meine Lösung ist so wie sie ist schon ziemlich geil und absolut tauglich, ich nutze sie jeden Tag.
Nun hätt ich sie doch gern etwas getuned weil ich letztens einen Eintrag "überscrollt" habe.
Arbeitet denn niemand mit nslookup und die Möglichkeiten der Ausgaben?
nslookup write Treffer
nslookup no write kein Treffer
Ich bin auf Arbeit und kann nicht Ewigkeiten mit Freundlichkeiten und Formatierungen verbringen!
Meine Lösung ist so wie sie ist schon ziemlich geil und absolut tauglich, ich nutze sie jeden Tag.
Nun hätt ich sie doch gern etwas getuned weil ich letztens einen Eintrag "überscrollt" habe.
Arbeitet denn niemand mit nslookup und die Möglichkeiten der Ausgaben?
nslookup write Treffer
nslookup no write kein Treffer
LÖSUNG 21.10.2011 um 22:12 Uhr
LÖSUNG 23.10.2011 um 09:58 Uhr
Aloha,
nein, tut mir leid, ich arbeite nicht mit NSLOOKUP
aber du könntest mir ja mal Ergebnisse aus Funden und nicht Funden posten, damit ich weiß, wie das ausschaut und was du dann weggefiltert haben willst.
Auf jeden Fall erst einmal wäre folgendes noch optimaler:
wobei, wenn bei copy nur der onliner steht, kannst du den auch gleich in die Befehlsklammer setzen ...
dürfte dein Skript auch deutlich dezimieren und ich denke, wenn ich weiß, wie deine Sortierung / Filterung aussehen soll, lässt sich die Schleife einfach erweitern und nur Treffer liefern 
greetz André
nein, tut mir leid, ich arbeite nicht mit NSLOOKUP
aber du könntest mir ja mal Ergebnisse aus Funden und nicht Funden posten, damit ich weiß, wie das ausschaut und was du dann weggefiltert haben willst.
Auf jeden Fall erst einmal wäre folgendes noch optimaler:
if exist c:\nslookup.txt (goto :copy) else (goto :ns)
for /L %%s in (1,1,255) do >>c:\nslookup.txt nslookup %var%.%%s
greetz André
LÖSUNG 25.10.2011 um 13:01 Uhr
Das Ergebnis sieht so aus (gekürzt). Die Trennlinien sind ein simples ECHO Unterstrich.
Die Blöcke, die nur den DNS-Server wiedergeben, hätte ich gern nicht geschrieben oder wenn, dann an am Ende oder in eine seperate .log (.txt).
Leider gibt nslookup irgendwie keinen passenden errorlevel aus, bei "... nicht gefunden: Non-existent domain".
Siehst Du da eine Möglichkeit?
Im Grunde hast Du Recht, aber ich bin mit Schleifen nicht so gut, werde mich bei passender Gelegenheit aber natürlich damit näher befassen!
Die Blöcke, die nur den DNS-Server wiedergeben, hätte ich gern nicht geschrieben oder wenn, dann an am Ende oder in eine seperate .log (.txt).
Leider gibt nslookup irgendwie keinen passenden errorlevel aus, bei "... nicht gefunden: Non-existent domain".
Siehst Du da eine Möglichkeit?
Im Grunde hast Du Recht, aber ich bin mit Schleifen nicht so gut, werde mich bei passender Gelegenheit aber natürlich damit näher befassen!
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
Name: PC1.local
Address: 192.168.1.2
________________________________
Server: dns-server.local
Address: 192.168.1.250
Name: PC2.local
Address: 192.168.1.3
________________________________
Server: dns-server.local
Address: 192.168.1.250
Name: SWITCH1.local
Address: 192.168.1.4
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
Server: dns-server.local
Address: 192.168.1.250
________________________________
LÖSUNG 25.10.2011 um 13:57 Uhr
Aloha,
also wenn ich das richtig sehe und verstehe, sind die Ausgaben, wo nur Server und Address stehen, die Fehler, sprich non-existent domain ... interessant, dass nslookup die Fehlermeldung nicht in die Log-Datei schreibt, sondern in der Konsole ausgibt und sich auch nicht per findstr /V herausfiltern lässt ...
Auch die weiteren Optionen zu nslookup scheinen mir diesbezüglich wenig hilfreich ... hmm, momentan habe ich leider nicht die Luft, mich genauer hineinzudenken und rumzupfuschen
aber die Woche bestimmt noch.
greetz André
edit: eventuell nutzt dir die aus Linux stammende Alternative dig eher etwas
also wenn ich das richtig sehe und verstehe, sind die Ausgaben, wo nur Server und Address stehen, die Fehler, sprich non-existent domain ... interessant, dass nslookup die Fehlermeldung nicht in die Log-Datei schreibt, sondern in der Konsole ausgibt und sich auch nicht per findstr /V herausfiltern lässt ...
Auch die weiteren Optionen zu nslookup scheinen mir diesbezüglich wenig hilfreich ... hmm, momentan habe ich leider nicht die Luft, mich genauer hineinzudenken und rumzupfuschen
greetz André
edit: eventuell nutzt dir die aus Linux stammende Alternative dig eher etwas
LÖSUNG 25.10.2011 um 17:17 Uhr
Hi
Finde ich erwähnenswert nett, dass Du deine Zeit dafür aufwendest.
Wenn ich nur wüsste, wie ich die Ergebniss unterscheiden kann, dann würde ich mir schon was basteln.
Evtl. mit Ausgabe in Variable -> dann if Variable "non-existent domain" >nul und if not dann >c:\nslookup.txt.
Wäre das vielleicht ein Weg? Was meinst Du?
Greetz an Alle
Finde ich erwähnenswert nett, dass Du deine Zeit dafür aufwendest.
Wenn ich nur wüsste, wie ich die Ergebniss unterscheiden kann, dann würde ich mir schon was basteln.
Evtl. mit Ausgabe in Variable -> dann if Variable "non-existent domain" >nul und if not dann >c:\nslookup.txt.
Wäre das vielleicht ein Weg? Was meinst Du?
Greetz an Alle
LÖSUNG 31.10.2011 um 17:31 Uhr
LÖSUNG 01.11.2011 um 07:43 Uhr
Aloha,
... aus den Augen ... naja war eine vollversorgende Woche
Ich hatte ja verstanden, dass du als Ausgabe
willst und nicht nur die Treffer der Zeilen, die Name enthalten ... (sonst wär' das Ding hier noch einfacher gewesen als zu Husten)
Das liefert dir jetzt
greetz André
... aus den Augen ... naja war eine vollversorgende Woche
Ich hatte ja verstanden, dass du als Ausgabe
Server: dns-server.local
Address: 192.168.1.250
Name: PC1.local
Address: 192.168.1.2
for /L %%s in (1,1,10) do (
for /f "tokens=1,* delims=:" %%m in ('nslookup %var%.%%s^|findstr /n "^"^|findstr "4: 5:"') do echo %%n>>"c:\nslookup.txt"
echo ________________________________>>"c:\nslookup.txt"
)
Name: PC1.local
Address: 192.168.1.2
________________________________