Batchfile zum Pingen erstellen mit Schleife
System Windows XP SP3
Guten Tag,
ich würde gern ein script erstellen mit dem ich einen gewissen ip-bereich nacheinander anpingen kann.
eine ausgabe in einer txt datei ist optional falls es nicht anders geht.
die ersten 3 ip oktetten sind fest und die letzte soll halt hochzählen.
der sinn des ganzen ist das ich feststellen möchte welche ip adressen vergeben sind.
ich verzweifle da gerade.
mit freundlichen Grüßen
Guten Tag,
ich würde gern ein script erstellen mit dem ich einen gewissen ip-bereich nacheinander anpingen kann.
eine ausgabe in einer txt datei ist optional falls es nicht anders geht.
die ersten 3 ip oktetten sind fest und die letzte soll halt hochzählen.
der sinn des ganzen ist das ich feststellen möchte welche ip adressen vergeben sind.
ich verzweifle da gerade.
mit freundlichen Grüßen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 27.06.2012 um 19:13:28 Uhr
Verschoben von "Windows oder watt" nach "Batch & Shell"
Content-ID: 187067
Url: https://administrator.de/contentid/187067
Ausgedruckt am: 22.11.2024 um 02:11 Uhr
34 Kommentare
Neuester Kommentar
Dös geht so:
<endwert> und <iprange< muss angepasst werden.
Auf der kommandozeile funktioniert es folgendermaßen: for /l %f in (1, 1, 20) do @Ping -n 1 192.172.168.%f | find "TTL"
[edit] Syntaxfehler bearbeitet.
for /l %%f in (1, 1, <endwert>) do @ping -n 1 <iprange>.%%f | find "TTL"
pause
<endwert> und <iprange< muss angepasst werden.
Auf der kommandozeile funktioniert es folgendermaßen: for /l %f in (1, 1, 20) do @Ping -n 1 192.172.168.%f | find "TTL"
[edit] Syntaxfehler bearbeitet.
Zitat von @Skyemugen:
Aloha,
naja, Penny hat es eben für eine Batch geschrieben und nicht für die CMD, bei der CMD-Ausführung musst du die
Prozentzeichen halbieren
greetz André
Aloha,
naja, Penny hat es eben für eine Batch geschrieben und nicht für die CMD, bei der CMD-Ausführung musst du die
Prozentzeichen halbieren
greetz André
Ich hatte es ursprünglich für die Commandshell gepostet. Und dann für den Batch angepasst.
Man könnte es erweitern, indem man die Parameter <iprange> und <endwert> abfragt, somit wäre es etwas variabler.
ich habe mir ein DOSKEY Macro erstellt
Scan=for /l %f in (1, 1, $2) do @ping -n 1 $1.%f | find "TTL"
Unn hier als Batch:
@Echo Off & Setlocal ENABLEDELAYEDEXPANSION
CLS
:: Leeren wir zur Sicherheit die Variablen.
Set RANGE=
SET ENDE=
:: Wir fragen den Adressbereich ab.
Echo. Geben Sie die den Adressbereich ein (z. B.: 192.172.168)
Set /P Range=
Echo.
:: Wir fragen die letzte zu scannende Adresse ab.
Echo. Geben Sie den Endbereich ein (z. B: 20)
Set /P Ende=
:: Diser Adressbereich wird nun angepingt
Echo. Es werden nun die Adressen %RANGE%.1 bis %RANGE%.%ENDE% gepingt.
Echo.
:: Die FOR Schleife machts doing....
FOR /l %%f in (1,1,%ENDE%) Do @ping -n 1 %RANGE%.%%f | FindStr /I "TTL"
:: Damit man es auch anschauen kann, eine kleine PAUSE.
Echo.
Echo. Weiter mit beliebiger Taste.
PAUSE > NUL
:EOF
EndLocal
Hallo Lehnau,
dein Problem ist zwar schon gelöst, aber ich habe ein erweitertes Script geschrieben. Schau es dir mal an, vielleicht sind meine Erweiterungen auch für dich nützlich.
MfG Medusaman
dein Problem ist zwar schon gelöst, aber ich habe ein erweitertes Script geschrieben. Schau es dir mal an, vielleicht sind meine Erweiterungen auch für dich nützlich.
MfG Medusaman
@echo off
TITLE IP-Adressen
color F4
:anfang
if exist IP-Adressen.txt del IP-Adressen.txt > nul
cls
echo Bitte geben Sie den ersten Teil der IP ein!
echo Dieser sollte folgendem Muster entsprechen 192.168.1.
echo !!!Der letzte Punkt ist wichtig!!!
set /p ip=Ihre IP:
set /p end=Geben Sie die Endadresse ein! Z.B. 255:
setlocal enabledelayedexpansion
set /a anzahl=0
IF %end% LEQ 255(
echo IP-Adresse MAC-Adresse Typ >> IP-Adressen.txt
echo _________________________________________________________ >> IP-Adressen.txt && echo. >> IP-Adressen.txt
for /L %%N IN (1, 1, %end%) DO (
set anzahl
cls
echo Ich arbeite!
ping %ip%%%N -n 1 -l 1 | find "TTL" > nul && cls && echo Ich arbeite! && nslookup %ip%%%N | find "Name" >> nul && cls && echo Ich arbeite! && arp -a %ip%%%N | find "dynamisch" >> IP-Adressen.txt && cls && echo Ich arbeite! && echo. >> IP-Adressen.txt && cls && echo Ich arbeite! && nslookup %ip%%%N | find "Name:" >> IP-Adressen.txt && cls && echo Ich arbeite! && cls && echo Ich arbeite! && echo. >> IP-Adressen.txt && echo --------------------------------------------------------- >> IP-Adressen.txt && echo. >> IP-Adressen.txt && set /a anzahl=!anzahl!+1
)
if exist IP-Adressen.txt (
cls
echo Eine Liste der erreichbaren IP-Adressen,
echo sowie der dazugehoerigen MAC-Adressen,
echo der Beziehungstypen
echo und der Geraetenamen in der Domain wurde
echo in der Datei IP-Adressen.txt erstellt.
echo. >> IP-Adressen.txt
echo !anzahl! IP-Adressen wurden gefunden >> IP-Adressen.txt
echo. >> IP-Adressen.txt
echo _________________________________________________________ >> IP-Adressen.txt
pause > nul
start IP-Adressen.txt
QUIT
) ELSE (
echo Das Programm konnte keine IP Adresse finden.
pause > nul
QUIT
)
) ELSE (
echo Die Endadresse ist zu gross. Sie darf maximal 255 sein.
pause > nul
goto anfang
)
hallo Medusaman,
wieso benötigst Du eine eigene Domain? Ein NSLOOKUP auf den DNS sollte doch reichen?
Und ein Test auf einem Memberserver bringt mir 0 Adressen zurück.
Per Befehl auf der Commandline bekomme ich jede Menge Adressen zurück.
fragt penny
wieso benötigst Du eine eigene Domain? Ein NSLOOKUP auf den DNS sollte doch reichen?
Und ein Test auf einem Memberserver bringt mir 0 Adressen zurück.
Per Befehl auf der Commandline
for /l %f in (1, 1, 255) do @ping -n 1 <range>.%f | findstr /i "ttl"
fragt penny
Versuch es mal damit:
@echo off
TITLE IP-Adressen
color F4
:anfang
if exist IP-Adressen.txt del IP-Adressen.txt > nul
cls
echo Bitte geben Sie den ersten Teil der IP ein!
echo Dieser sollte folgendem Muster entsprechen 192.168.1.
echo !!!Der letzte Punkt ist wichtig!!!
set /p ip=Ihre IP:
set /p end=Geben Sie die Endadresse ein! Z.B. 255:
setlocal enabledelayedexpansion
set /a anzahl=0
IF %end% LEQ 255 (
echo IP-Adresse MAC-Adresse Typ >> IP-Adressen.txt
echo _________________________________________________________ >> IP-Adressen.txt && echo. >> IP-Adressen.txt
for /L %%N IN (1, 1, %end%) DO (
set anzahl
cls
echo Ich arbeite!
ping %ip%%%N -n 1 -l 1 | find "TTL" > nul && cls && echo Ich arbeite! && cls && echo Ich arbeite! && arp -a %ip%%%N | find "dynamisch" >> IP-Adressen.txt && cls && echo Ich arbeite! && echo. >> IP-Adressen.txt && cls && echo Ich arbeite! && cls && echo Ich arbeite! && cls && echo Ich arbeite! && echo. >> IP-Adressen.txt && echo --------------------------------------------------------- >> IP-Adressen.txt && echo. >> IP-Adressen.txt && set /a anzahl=!anzahl!+1
)
if exist IP-Adressen.txt (
cls
echo Eine Liste der erreichbaren IP-Adressen,
echo sowie der dazugehoerigen MAC-Adressen
echo und der Beziehungstypen wurde
echo in der Datei IP-Adressen.txt erstellt.
echo. >> IP-Adressen.txt
echo !anzahl! IP-Adressen wurden gefunden >> IP-Adressen.txt
echo. >> IP-Adressen.txt
echo _________________________________________________________ >> IP-Adressen.txt
pause > nul
start IP-Adressen.txt
QUIT
) ELSE (
echo Das Programm konnte keine IP Adresse finden.
pause > nul
QUIT
)
) ELSE (
echo Die Endadresse ist zu gross. Sie darf maximal 255 sein.
pause > nul
goto anfang
)
Ist eigentlich ganz simpel
ping %ip%%%N -n 1 -l 1 | find "TTL" > nul ping mit der IP
&& nslookup %ip%%%N | find "Name" >> nulnslookup mit der IP
&& arp -a %ip%%%N | find "dynamisch" >> IP-Adressen.txt arp mit der IP
&& nslookup %ip%%%N | find "Name:" >> IP-Adressen.txtnoch ein nslookup mit der IP
Der Rest mit && echo Ich arbeite && und sowas ist alles nur für die Optik.
Da das alles mit && verknüpft ist werden nur Adressen aufgezeichnet, deren Name auch aufgelöst werden können.
Ich arbeite auch noch unter XP.
ping %ip%%%N -n 1 -l 1 | find "TTL" > nul ping mit der IP
&& nslookup %ip%%%N | find "Name" >> nulnslookup mit der IP
&& arp -a %ip%%%N | find "dynamisch" >> IP-Adressen.txt arp mit der IP
&& nslookup %ip%%%N | find "Name:" >> IP-Adressen.txtnoch ein nslookup mit der IP
Der Rest mit && echo Ich arbeite && und sowas ist alles nur für die Optik.
Da das alles mit && verknüpft ist werden nur Adressen aufgezeichnet, deren Name auch aufgelöst werden können.
Ich arbeite auch noch unter XP.
Moin Medusaman,
nicht daß ich wüßte. Ich habe grade mal einen arp -a ausgeführt und bekomme nun Rückmeldung. Ich weiß jetzt auch nicht, ob und wann der ARP-Cache gelöscht wird.
hi,
probier mal
http://www.heise.de/download/network-scanner-1113270.html
oder nmap, gibts auch fuer windows
nmap.org
probier mal
http://www.heise.de/download/network-scanner-1113270.html
oder nmap, gibts auch fuer windows
nmap.org
kurze frag:
was sollen denn statische arp einträge sein?
kurze frag:
was sollen denn statische arp einträge sein?
was sollen denn statische arp einträge sein?
Dabei schreibt man seine arp Tabelle selbst:
www.tecchannel.de/netzwerk/lan/402460/arp_grundlagen_und_spoofing/index8.html