Ich muss mit einem Skript arbeiten, das den ping
Befehl mit seiner normalen Linux-Syntax verwendet. Weder das Standardpaket von Cygwin noch das Windows-Ping-Dienstprogramm funktionieren. Vorerst habe ich das Skript so gepatcht, dass es die Windows-Version verwendet (mit einigen Schwierigkeiten; die ausführbare Windows-Datei bietet keine nützlichen Rückgabecodes, sodass ich die Ausgabe analysieren muss), aber ich hätte gerne die sofort einsatzbereite Kompatibilität undZusatzfunktionendes Linux-Pings. Bevor ich weitermache, möchte ich darauf hinweisen, dass ich Cygwin im Administratormodus ausführe. Es handelt sich nicht um ein Problem mit den Berechtigungen. Es ist ein Versionsproblem.
Der Standardbefehl von Cygwin ping
ist im Setup-Manager im Paket „ping: ein grundlegendes Netzwerktool zum Testen der IP-Netzwerkkonnektivität“ als Version „1.0-1“ aufgeführt. Ohne Argumente gibt er Folgendes aus:
Usage: ping [-dfqrv] host [packetsize [count [preload]]]
und die Manpage-Beschreibung beginnt mit„Das DARPA-Internet ist eine große und komplexe Ansammlung von Netzwerkhardware“,, was sich für mich mehr als veraltet liest. Dies ist die in installierte Version /bin/ping
.
Der Windows- ping
Befehl befindet sich unter $SYSTEMROOT/system32/ping
und gibt beim Aufruf ohne Parameter die folgende Meldung aus.
Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
[-r count] [-s count] [[-j host-list] | [-k host-list]]
[-w timeout] target_name
Dies ist sicherlich ein Ping mit mehr Funktionen (insbesondere enthält er Timeouts, was mir wichtig ist), aber es ist nicht die Version, die auf einer modernen Linux-Installation verfügbar ist:
ping [ -LRUbdfnqrvVaAB] [ -c count] [ -i interval] [ -l preload] [ -p pattern]
[ -s packetsize] [ -t ttl] [ -w deadline] [ -F flowlabel] [ -I interface]
[ -M hint] [ -Q tos] [ -S sndbuf] [ -T timestamp option] [ -W timeout]
[ hop ...] destination
online dokumentiertHier. Ich kann scheinbar keine Verweise auf die Cygwin-Version von Ping finden, außer in Bezug auf Cygwin.
ich fanddieser alte E-Mail-Threaddas eine frühe Version von Cygwin ohne Ping beschreibt. Ich habe keine für Windows entwickelte Version von iputils gefunden.
Antwort1
Sie könnten entweder
- Versuchen Sie, Ping aus der Quelle zu erstellen. Dies ist Teil deriputils-Paket. Aber das Erstellen von Dingen auf Cygwin kann ziemlich mühsam sein.
Oder (und das würde ich zuerst versuchen)
- Versuchen Sie eine andere Ping-Implementierung, wie diese in PerlNetz::Pingodereiner der anderen auf CPAN