Batch Script zum ping auf verschiedene ip adressen und Ausgabe in txt file

VeniceBeach

Newbie
Registriert
Jan. 2023
Beiträge
4
Hallo Zuammen

Ich möchte ein kleines Batch Script, welches 3 verschiedene IP Adressen nacheinander anpingt und den Output dann in ein txt File schreibt. So dass man im Nachhinein im txt schauen kann, welche IP erreichbar war und welche nicht.

Kann da jemand behilflich sein?

Gruss
 
Da gibt es nmap dafür.
 
Powershell:

Code:
cmd /r ping 8.8.8.8 > ping_results.txt
cmd /r ping 8.8.4.4 >> ping_results.txt
cmd /r ping 1.1.1.1 >> ping_results.txt

Die IPs und den Ausgabe-Dateinamen musst du noch anpassen :)
 
Code:
nmap -sn 127.0.0.1 0.0.0.0  8.8.8.8 > ping_results.txt
 
Die verschiedenen ip oder url adressen kann man einfach nacheinander setzen? Also nach obigem Beispiel:

nmap -sn google.com heise.de apple.com > ping_results.txt
Ergänzung ()

Klonimbus88 schrieb:
Powershell:

Code:
cmd /r ping 8.8.8.8 > ping_results.txt
cmd /r ping 8.8.4.4 >> ping_results.txt
cmd /r ping 1.1.1.1 >> ping_results.txt

Die IPs und den Ausgabe-Dateinamen musst du noch anpassen :)
Wenn ich das so in eine Batch schreibe, funktioniert das leider nicht :-(
 
Zuletzt bearbeitet:
VeniceBeach schrieb:
Wenn ich das so in eine Batch schreibe, funktioniert das leider nicht :-(
Deshalb schrieb ich ja "Powershell", du musst es als .ps1 abspeichern.

Für eine .bat musst du vorne jeweils das "cmd /r" entfernen. Dann fehlen in der Ausgabedatei allerdings die Umlaute bzw. werden falsch dargestellt.
 
Ich habe folgendes getestet:

cmd /r ping heise.de > ping_results.txt
cmd /r ping apple.com >> ping_results.txt
cmd /r ping google.com>> ping_results.txt

Dies als .bat gespeichert.

Der Output im ping_results.txt war dann der folgende:

C:\>cmd /r ping heise.de 1>ping_results.txt

C:\>cmd /r ping apple.com 1>>ping_results.txt

C:\>cmd /r ping google.com 1>>ping_results.txt

C:\>cmd /r ping heise.de 1>ping_results.txt

C:\>cmd /r ping apple.com 1>>ping_results.txt

C:\>cmd /r ping google.com 1>>ping_results.txt

C:\>cmd /r ping heise.de 1>ping_results.txt

C:\>cmd /r ping apple.com 1>>ping_results.txt

C:\>cmd /r ping google.com 1>>ping_results.txt
 
Klonimbus88 schrieb:
Deshalb schrieb ich ja "Powershell", du musst es als .ps1 abspeichern.

Für eine .bat musst du vorne jeweils das "cmd /r" entfernen. Dann fehlen in der Ausgabedatei allerdings die Umlaute bzw. werden falsch dargestellt.
Wenn ich es so mache mit dem cmd /r entfernen dann sieht die Batch wie folgt aus:

ping heise.de > ping_results.txt

ping apple.com >> ping_results.txt

ping google.com>> ping_results.txt

Der Output daraus ist dann:

H:\>ping heise.de 1>ping_results.txt
Ergänzung ()

Ok ich hab den Fehler gefunden. Wenn ich die Batch datei auf C:\ verschiebe, dann funktioniert es
 
Zuletzt bearbeitet:
VeniceBeach schrieb:
Die verschiedenen ip oder url adressen kann man einfach nacheinander setzen?
Ja das geht genau so.
Hier die Beispielausgabe:
Code:
thomas@h69-146:~> nmap -sn google.com heise.de apple.com
Starting Nmap 7.93 ( https://nmap.org ) at 2023-01-24 12:54 CET
Nmap scan report for google.com (142.250.181.238)
Host is up (0.0057s latency).
Other addresses for google.com (not scanned): 2a00:1450:4001:80b::200e
rDNS record for 142.250.181.238: fra16s56-in-f14.1e100.net
Nmap scan report for heise.de (193.99.144.80)
Host is up (0.0081s latency).
Other addresses for heise.de (not scanned): 2a02:2e0:3fe:1001:302::
rDNS record for 193.99.144.80: redirector.heise.de
Nmap scan report for apple.com (17.253.144.10)
Host is up (0.0095s latency).
Other addresses for apple.com (not scanned): 2620:149:af0::10
rDNS record for 17.253.144.10: apple.com.mx
Nmap done: 3 IP addresses (3 hosts up) scanned in 0.02 seconds

Klonimbus88 schrieb:
Schön kompakt und besonders nützlich, wenn man eine leere .txt benötigt :)
Natürlich muss man nmap zuerst installieren, sonst ist die Ausgabe leer :p
 
  • Gefällt mir
Reaktionen: Klonimbus88
Wenn man tatsächlich mit Windows Batch und Ping arbeiten möchte, muss man bedenken, dass ping sowohl auf stdout als auch stderr ausgibt. Ein simples redirect wie bei ping 8.8.8.8 >> log.txt gibt jedoch nur stdout aus und nicht stderr. Es kann daher passieren, dass man in der Eingabeaufforderung (zeigt beides an) zwar eine Ausgabe sieht, aber in der Batch mit dem Redirect trotzdem nichts in der txt-Datei auftaucht.

Um auch stderr in der Ausgabedatei zu sehen, muss man sich eines zweiten Redirects bedienen:

ping 8.8.8.8 2>&1 >> log.txt

Damit wird nämlich der Output von stderr (=2) in stdout (=1) umgeleitet und anschließend wird alles in die Datei geschrieben. So sieht man zuverlässig jeden Output von ping in der Datei.
 
  • Gefällt mir
Reaktionen: Klonimbus88
Zurück
Oben