Gunakan ping Linux di Cygwin

8

Saya perlu bekerja dengan skrip yang menggunakan pingperintah 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.

pingPerintah 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.

pingPerintah 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.

Kevin Vermeer
sumber

Jawaban:

3

Anda juga bisa

  • cobalah untuk membangun ping dari sumber, itu bagian dari paket iputils . Tapi membangun barang di cygwin bisa sangat merepotkan.

Atau (dan saya akan coba ini dulu)

Nifle
sumber
Terima kasih, sepertinya opsi pertama akan bekerja lebih baik untuk saya karena salah satu persyaratan yang diinginkan adalah memiliki sintaks versi iputils, jadi mencoba lagi implementasi ping tidak akan membantu. Yang mengatakan, saya ragu bahwa saya adalah orang pertama yang mengalami hal ini jadi saya akan menunggu jika seseorang sudah mencobanya.
Kevin Vermeer
Ngomong-ngomong, iputils belum merilis tag dalam hampir dua tahun, tetapi sudah ada beberapa pengembangan untuk dukungan IPv6 di repositori git mereka, yang agak sulit ditemukan tetapi terletak di `git: //git.linux- ipv6.org / gitroot / iputils.git`. Semoga itu bisa membantu seseorang. Saya akan memposting patch ketika saya selesai dengan ini, ada sedikit pekerjaan yang harus dilakukan tetapi tampaknya tidak dapat diatasi.
Kevin Vermeer
1
Jika Anda mendapatkan tempat dengan membangun iputils untuk Cygwin, saya sangat curiga seluruh komunitas Cygwin akan senang melakukannya juga.
me_and
@me_and - Saya pasti akan merilisnya jika saya berhasil. Namun, sementara beberapa file pertama yang disusun dengan baik dengan hanya mengubah #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.
Kevin Vermeer