Das große deutschsprachige Gitarrenforum
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.


Confusedtart
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 ...

Confusedtart
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 ....