Saya perlu bekerja dengan skrip yang menggunakan ping
perintah dengan sintaks Linux yang biasa, baik paket default Cygwin atau utilitas ping Windows tidak akan berfungsi. Untuk saat ini, saya telah menambal skrip untuk menggunakan versi Windows (dengan sedikit kesulitan; executable Windows tidak memberikan kode pengembalian yang berguna jadi saya harus mengurai output), tetapi saya ingin yang out-of-the- kompatibilitas kotak dan fitur tambahan dari ping Linux. Sebelum saya melangkah lebih jauh, izinkan saya menyatakan bahwa saya menjalankan Cygwin dalam mode administrator; itu bukan masalah hak istimewa. Ini masalah versi.
ping
Perintah default Cygwin terdaftar sebagai versi '1.0-1' di manajer pengaturan, di paket 'ping: alat jaringan dasar untuk menguji konektivitas jaringan IP'. Tanpa argumen, ini menghasilkan:
Usage: ping [-dfqrv] host [packetsize [count [preload]]]
dan deskripsi halaman manual dimulai dengan "Internet DARPA adalah kumpulan besar dan kompleks dari perangkat keras jaringan," , yang menurut saya agak ketinggalan zaman. Ini adalah versi yang dipasang di /bin/ping
.
ping
Perintah Windows terletak di $SYSTEMROOT/system32/ping
, dan menampilkan pesan berikut tentang doa tanpa parameter.
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
Ini tentu saja ping yang lebih kaya fitur (terutama, ini termasuk batas waktu, yang penting bagi saya), tetapi ini bukan versi yang tersedia pada instalasi Linux modern:
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
didokumentasikan online di sini . Saya sepertinya tidak bisa menemukan referensi ke versi ping cygwin kecuali mengacu pada Cygwin.
Saya menemukan utas email kuno ini yang menggambarkan versi awal Cygwin tanpa ping. Saya belum menemukan versi iputils yang dirancang untuk Windows.
#include <linux/filename.h>
ke#include <cygwin/filename.h>
dan sejenisnya, saya kemudian menemukan bahwa driver Cygwin socket juga kurang fitur yang dibutuhkan oleh iputils. Ini bukan hanya masalah membangun iputils untuk Cygwin, tetapi juga membangun Cygwin untuk bekerja dengan iputils. Saya akan mencobanya nanti jika saya punya waktu luang.