![]() |
Batch Datei "Networkscan" - Druckversion +- Das große deutschsprachige Gitarrenforum (https://gitarrenboard.de) +-- Forum: Allgemeines (https://gitarrenboard.de/forumdisplay.php?fid=3) +--- Forum: Alles was sonst noch anfällt (https://gitarrenboard.de/forumdisplay.php?fid=6) +--- Thema: Batch Datei "Networkscan" (/showthread.php?tid=26595) |
RE: Batch Datei "Networkscan" - tray - 23-06-2009 Hi! Ich wende mich deshalb mit diesem Problem an das Gitarrenboard, weil man auf Gulli Chip & Co nur diskriminierende Antworten bekommt und ich mich hier am wohlsten fühle. Ich bin dabei eine kleine Batch Datei zu schreiben um einen Netzwerkscan in einer bestimmten IP Range zu machen. Alle Adressen, die ein reply von sich geben, sollen dann in ein Textdokument geschrieben werden, was auch funktioniert. Nun gibt es natürlich einige Probleme. Erstes wäre, dass die Schleife nicht gescheit zählt. Gibt man bsp 192.168.201.22 ein, wird so gezählt 192.168.201.221 192.168.201.222 192.168.201.223 192.168.201.224 192.168.201.225 Ich möchte jedoch, dass 22, 23, 24 gezählt wird. Auch die Einstellungen mit dem Zeitintervall sind noch pflegebedürftig. Sehr wichtig wäre mir auch eine Format Überprüfung, also falls keine gescheite IP Adresse eingegeben wird, wird eine Fehlermeldung ausgespuckt. Dahinter bin ich noch nicht gekommen. Hier einmal der Quellcode, der auch als Anhang beigelegt ist, welcher als networkscant.txt deklariert ist da .bat im Forum (logischweise) nicht unterstützt wird. Einfang in .bat ändern und ausführen: @echo off title Networkscan COLOR 1E echo. echo ====================================== echo NETWORKSCAN echo Uhrzeit: %time% echo ====================================== echo. echo INFO echo 1. Abbruch mit Strg \"&\" C echo 2. Alle gefundenen IP Adressen werden in der Datei \"founded_ips.txt\" gespeichert echo. ![]() echo Bitte den Adressbereich eingeben (Bsp.: 192.168.201.): set /p ip= echo Bitte den Zeitintervall eingeben (in/sek): set /p inter= for /L %%N IN (1, 1, 255) DO ( echo. echo ======================================== echo Die IP: %ip%%%N wird nun angepingt echo ======================================== echo. ping %ip%%%N -n 1 -w %inter%%%N | find \"TTL\" && echo %ip%%%N >> founded_ips.txt ) pause > nul :ende /p exit Habt Ihr Ideen und/oder Verbesserungsvorschläge? P.S. Gibt es eine Möglichkeit, dass auch der DNS Name neben der IP Adresse angezeigt wird? Eingabe C:ping 192.168.201.41 Ausgabe Antwort von 192.168.201.41: Bytes=32 Zeit=47 TTL=248 DNS=PCWS0102 Danke schon mal im Voraus. Grüße Tray - Searcher - 24-06-2009 mal so ins unreine auf die schnelle ... ![]() echo Bitte den Adressbereich eingeben (Bsp.: 192.168.201.): set /p ip1= set /p ip2= set /p ip3= set /p ip4= echo Bitte den Zeitintervall eingeben (in/sek): set /p inter= echo ======================================== echo Die IP: %ip1%.%ip2%.%ip3%.%ip4% bis %inter% wird nun angepingt echo ======================================== for /L %%N IN (%ip4%,1,%inter%) DO ( echo. echo ======================================== echo Die IP: %ip1%.%ip2%.%ip3%.%%N wird nun angepingt echo ======================================== echo. ping %ip1%.%ip2%.%ip3%.%%N -n 1 | find \"TTL\" && echo %ip1%.%ip2%.%ip3%.%%N >> founded_ips.txt ) pause > nul :ende /p exit Der witz ist, du must die ip adresse nacheinander eingeben z.b. 192 168 0 1 und dann das endeintervall 17 der pingt dann von 192.168.0.1 bis 192.168.0.17 und schreibt die gefundenen in die datei ... vielleicht hilfts ja weiter - tray - 24-06-2009 Hey Dankschön. :rotate: Das Probier ich morgen gleich aus. Grüße Tray - tray - 26-06-2009 Es funktioniert. Klasse. Wenn man nun den NetBios Namen der angepingten Workstation noch angezeigt bekäme, wäre das echt edel. Funktioniert das irgendwie? - Searcher - 26-06-2009 dazu brauchst du einen dns server, der muss den rechnernamen und die ip dazu kennen, dann nslookup w.x.y.z (ip-adresse) und der gibt dir dann den dns namen zurück - Searcher - 30-06-2009 wenn du die zeile wie folgt änderst ping %ip1%.%ip2%.%ip3%.%%N -n 1 -w %inter%%%N | find \"TTL\" && echo %ip1%.%ip2%.%ip3%.%%N >> founded_ips.txt nslookup %ip1%.%ip2%.%ip3%.%%N >> founded_ips.txt ) trägt der nslookup dir den servernamen und die ip adresse in die datei ein. die ip hättest du somit doppelt wenn du nur mit nslookup testest findest du keine geräte die zwar eine ip haben aber keinen dns server eintrag ... am besten eine abfrage im sinne von ... wenn eine gültige ip ausgegeben wird (ping) dann mit nslokkup testen ... wenn nicht dann nur ping ... ob der errorlevel oder sonst was das her gibt weiss ich aber nicht ... für mehr solltest du besser eine programmiersprache benutzen .... |