Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch-Skripting - Erreichbarkeit von IP-Adressen (ping)

Frage Entwicklung Batch & Shell

Mitglied: eccos01

eccos01 (Level 1) - Jetzt verbinden

05.05.2011 um 15:06 Uhr, 16442 Aufrufe, 9 Kommentare

Hallo,

ich habe ein Problem...
ich will die Erreichbarkeit einer Adresse (Ip-Adresse oder Name - LAN und WAN) in einem Batch-Skript überprüfen und abhängig vom Ergebnis etwas tun...

Eigentlich wollte ich mit PING und ERRORLEVEL arbeiten, aber bei folgendem Beispiel bekomme ich unterschiedliche Ergebnisse...

Skript:
01.
ping  -n 1 -w 1000 -l 1000 172.16.100.139 
02.
if ERRORLEVEL 1 ( 
03.
   echo ping 172.16.100.139: NOT OK 
04.
) else ( 
05.
   echo ping 172.16.100.139: OK 
06.
)
Und mal bekomme ich OK und mal bekomme ich NOT OK!

Dies ist abhängig vom Output des ping...
- antwortet ping folgendermaßen erhalte ich OK:

Ping wird ausgeführt für 192.169.100.139 mit 1000 Bytes Daten:
Zeitüberschreitung der Anforderung.
Ping-Statistik für 172.16.100.139:
Pakete: Gesendet = 1, Empfangen = 0, Verloren = 1 (100% Verlust),

- antwortet ping aber so... erhalte ich OK:
Ping wird ausgeführt für 192.169.100.139 mit 1000 Bytes Daten:
Antwort von 62.24.12.197: Zielhost nicht erreichbar.
Ping-Statistik für 172.16.100.139:
Pakete: Gesendet = 1, Empfangen = 1, Verloren = 0 (0% Verlust),
Ca. Zeitangaben in Millisek.:
Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms

Weiß jemand wieso ping mal so und mal so antwortet und dementsprechend den ERRORLEVEL unterschiedlich besetzt?
Wie kann ich denn die Erreichbarkeit wirklich 100 % korrekt auswerten?
Mitglied: TsukiSan
05.05.2011 um 15:44 Uhr
hallo eccos01,

nur mal was zum Spielen:
01.
@ECHO off 
02.
 
03.
cls 
04.
 
05.
SET ip=172.16.100. 
06.
SET log=ips.txt 
07.
 
08.
IF EXIST %log% DEL %log% && ECHO Datei wurde gelöscht 
09.
IF EXIST %log% NEQ 0 ECHO Datei konnte nicht gelöscht werden! & GOTO :eof 
10.
 
11.
FOR /L %%i IN (0,1,255) DO ( 
12.
 	ping -n 1 -w 5 %ip%%%i|find "TTL=" && ECHO %ip%%%i >> %log% || echo %ip%%%i nicht erreichbar 
13.
)
Falls es aber bei einer vermeintlich permanenten Verbindung ständig zu Ungereimtheiten kommt - also mal da und mal nicht - dann liegt es mit Sicherheit nicht an der Batch

Gruss
Tsuki
Bitte warten ..
Mitglied: micneu
05.05.2011 um 16:10 Uhr
hier habe ich in powershell geschrieben

01.
## ---------------------------------------------------------------------------- 
02.
## Script Name: 	        ping-test.ps1 
03.
## CreationDate: 	05.05.2011 
04.
## Last Modified:  
05.
## Copyright: 		M.N. (c)2011 
06.
## Purpose: 			 
07.
## 			einmal auf der powershell ausgeführen  
08.
##     "Set-ExecutionPolicy Unrestricted"  
09.
## ---------------------------------------------------------------------------- 
10.
 
11.
function timepost() { 
12.
    $gelaufenezeit_STD = ($stop - $start).TotalHours 
13.
    $gelaufenezeit_MIN = ($stop - $start).TotalMinutes 
14.
    $gelaufenezeit_SEK = ($stop - $start).TotalSeconds 
15.
     
16.
    echo $gelaufenezeit_SEK 
17.
    If ($gelaufenezeit_SEK -ge 3600) {         
18.
        [int]$MINUTEN = ($gelaufenezeit_SEK / 3600)         
19.
        $MINUTEN_REST = ($gelaufenezeit_SEK - ([int]$MINUTEN*3600)) 
20.
        $MINUTEN_REST = ($MINUTEN_REST / 60)         
21.
        $MINSEK = "Std." 
22.
        'Auftrag nach {0:0},{1:0} {2} erledigt....' -f [int]$gelaufenezeit_STD, $MINUTEN_REST, $MINSEK 
23.
24.
    ElseIf ($gelaufenezeit_SEK -ge 60){ 
25.
        [int]$SEKUNDEN = ($gelaufenezeit_SEK / 60)         
26.
        $SEKUNDEN_REST = ($gelaufenezeit_SEK - ([int]$SEKUNDEN*60))         
27.
        $MINSEK = "Min." 
28.
        'Auftrag nach {0:0},{1:0} {2} erledigt....' -f $gelaufenezeit_MIN, $SEKUNDEN_REST, $MINSEK 
29.
30.
    Else { 
31.
        $MINSEK = "Sek." 
32.
        'Auftrag nach {0:0} {1} erledigt....' -f $gelaufenezeit_SEK, $MINSEK 
33.
34.
     
35.
    #'Auftrag nach {0:0.00} {1} erledigt....' -f $gelaufenezeit, $MINSEK  
36.
37.
 
38.
$start = Get-Date 
39.
echo "Programm ist am laufen seit: $start" 
40.
echo "Start Zeit: $start" > .\ping.log 
41.
while ($true) { 
42.
    $ausgabe = ping -n 1000 192.168.181.100 
43.
    echo $ausgabe 
44.
    if ($ausgabe -like "Zeitüberschreitung der Anforderung.") {         
45.
        $stop = Get-Date 
46.
        echo "Fehler Zeit: $stop" >> .\ping.log 
47.
        break  
48.
49.
50.
         
51.
timepost >> .\ping.log 
52.
timepost
gruß michael
Bitte warten ..
Mitglied: eccos01
05.05.2011 um 17:34 Uhr
Um es klar zu stellen... die obige IP-Adresse ist nur ein Beispiel für eine nicht erreichbare Adresse... in diesem Beispiel ist sie in einem anderen Subnetz... und sie es existiert auch im gesamten LAN nicht.

Das heißt, daß sie zu keinem Zeitpunkt erreichbar wäre. Dennoch kommen zwei verschiedene Ergebnisse und sobald die Antwort "Antwort von" enthält, ist der ERRORLEVEL = 0.

Ach ja... und es sollte ein reines Batch-Skipt sein... und universell einsetzbar (das heißt unabhängig von der Windows Version (XP, Vista, 7, 2003, 2008) und von der Sprache (deutsch, englisch, frz)).
Bitte warten ..
Mitglied: eccos01
05.05.2011 um 17:36 Uhr
hallo Michael,

erst einmal Danke für das Skript.

Allerdings benötige ich nur eine Aussage, ob diese Adresse zum aktuellen zeitpunkt erreichbar und ggf. der Name auflösbar ist.

Nur sollte das Ergebnis verlässlich sein!
Bitte warten ..
Mitglied: Biber
05.05.2011 um 19:45 Uhr
Moin eccos01,

Zitat von eccos01:
Ach ja... und es sollte ein reines Batch-Skipt sein... und universell einsetzbar (das heißt unabhängig von der Windows
Version (XP, Vista, 7, 2003, 2008) und von der Sprache (deutsch, englisch, frz)).

Dann so [als Demo amCMD-Prompt]
>for %i in ( 172.16.100.129 xx.yyy.112.zzz localhost) do @ping  -n 1 -w 1000 -l 1000 %i |find "TTL">nul && echo ok %i ||@echo !! %i nicht erreichbar. 
!! 172.16.100.129 nicht erreichbar. 
ok xx.yyy.112.zzz 
ok localhost
Die xx.yyy.112.zzz war natürlich eine echte IP, ist nur anonymisiert.

"TTL" sollte es in jeder noch so internationalen Ping-Ausgabe geben, ausgenommen da wo T-Mo wohnt.

Grüße
Biber
Bitte warten ..
Mitglied: traller
21.02.2012 um 18:59 Uhr
Hallo,
ich wollte das noch mal aus der Versenkung holen.
Wenn ich nun folgendes habe:
01.
ping 192.168.0.30 -n 1 -w 1000 -l 2000 
02.
if %ERRORLEVEL%==1 ( 
03.
echo ping 192.168.0.30: NOT OK! 
04.
) else ( 
05.
echo ping 192.168.0.30: OK! 
06.
)
das soll für windows 7 sein.
irgendwie kommt die Batch bei mir in eine Endlosschleife und nix richtiges gibt der dann aus. was mache ich falsch?
Bitte warten ..
Mitglied: Biber
21.02.2012 um 19:04 Uhr
Moin trailer,

benenne die Batchdatei um von "ping.bat" oder "ping.cmd" in "ichbineinsupercoder.cmd".

Dann funktioniert es.

Grüße
Biber
Bitte warten ..
Mitglied: traller
21.02.2012 um 19:24 Uhr
Zitat von Biber:
Moin trailer,

benenne die Batchdatei um von "ping.bat" oder "ping.cmd" in "ichbineinsupercoder.cmd".

Dann funktioniert es.

Grüße
Biber

Hallo,
leider geht es dadurch immer noch nicht. Datei ist hier: http://www.dateiupload.com/files/2V4vyu4uCo.cmd ist da irgendwo ein Tippfehler drin?

hoppla, hatte deinen satz falsch gelesen, is ok geht nun.
Bitte warten ..
Mitglied: Leonie04
06.01.2016 um 14:26 Uhr
Hallo,
was mir fehlt ist die Möglichkeit, dass nur die Ping Aussetzer protokolliert werden. Denn so ist das Ergebnis doch immer sehr unübersichtlich und wenn nur die Problemfälle protokolliert werden, dann wäre es doch besser.

Ein Beispiel liefert Michael mit seinem Ping Test.bat. (http://www.windows-faq.de/2015/10/21/netzwerkprobleme-feststellen-nur-p ...)

Vielleicht könnte mal die verschiedenen Möglchkeiten kombinieren?

VG
Leonie
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch um mehrere IP-Adressen via Ping auf Erreichbarkeit zu prüfen (5)

Frage von Galindiesel zum Thema Batch & Shell ...

SAN, NAS, DAS
gelöst QNAP TS-453U - drei IP-Adressen für iSCSI , SMB , Management (2)

Frage von caspi-pirna zum Thema SAN, NAS, DAS ...

SAN, NAS, DAS
QNAP Installationsproblem wenn der Client mehre statische IP-Adressen hat (6)

Erfahrungsbericht von StefanKittel zum Thema SAN, NAS, DAS ...

Sicherheit
Mirai-Botnetz: Dyn bestätigt Angriff von zig-Millionen IP-Adressen

Link von runasservice zum Thema Sicherheit ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...