Usa il ping Linux in Cygwin


8

Ho bisogno di lavorare con uno script che utilizza il pingcomando con la sua normale sintassi Linux, né il pacchetto predefinito di Cygwin né l'utilità di ping di Windows funzioneranno. Per ora, ho corretto lo script per utilizzare la versione di Windows (con qualche difficoltà; l'eseguibile di Windows non fornisce utili codici di ritorno, quindi devo analizzare l'output), ma mi piacerebbe il out-of-the- compatibilità box e funzionalità aggiuntive del ping Linux. Prima di proseguire, lasciatemi dire che sto eseguendo Cygwin in modalità amministratore; non è un problema di privilegi. È un problema di versioni.

Il pingcomando predefinito di Cygwin è elencato come versione '1.0-1' nel setup manager, nel pacchetto 'ping: uno strumento di rete di base per testare la connettività di rete IP'. Senza argomenti, genera:

Usage:  ping [-dfqrv] host [packetsize [count [preload]]]

e la descrizione della pagina man inizia con "Internet DARPA è una grande e complessa aggregazione di hardware di rete" , che per me è più che un po 'datata. Questa è la versione installata in /bin/ping.

Il pingcomando di Windows si trova in $SYSTEMROOT/system32/pinge genera il seguente messaggio sull'invocazione senza parametri.

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

Questo è sicuramente un ping più ricco di funzionalità (in particolare, include timeout, che è importante per me), ma non è la versione disponibile su una moderna installazione Linux:

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

documentato online qui . Non riesco a trovare riferimenti alla versione cygwin del ping se non in riferimento a Cygwin.

Ho trovato questo antico thread e-mail che descrive una versione precedente di Cygwin senza ping. Non ho trovato alcuna versione di iputils progettata per Windows.

Risposte:


3

Puoi farlo anche tu

  • prova a compilare il ping dal sorgente, fa parte del pacchetto iputils . Ma costruire cose su Cygwin può essere piuttosto una seccatura.

Oppure (e proverei questo prima)


Grazie, sembra che la prima opzione funzionerà meglio per me poiché uno dei requisiti desiderati è che abbia la sintassi della versione di iputils, quindi provare ancora un'altra implementazione del ping non sarà d'aiuto. Detto questo, dubito di essere stato il primo ad averlo incontrato, quindi aspetterò nel caso qualcuno lo abbia già provato.
Kevin Vermeer,

A proposito, iputils non ha rilasciato un tag in quasi due anni, ma c'è stato qualche sviluppo per il supporto di IPv6 nel loro repository git, che era un po 'difficile da trovare ma si trova in `git: //git.linux- ipv6.org / gitroot / iputils.git`. Spero che aiuti qualcuno. Pubblicherò la patch quando avrò finito, c'è un bel po 'di lavoro da fare ma non sembra insormontabile.
Kevin Vermeer,

1
Se arrivi ovunque con la creazione di iputils per Cygwin, sospetto fortemente che anche il resto della comunità Cygwin amerebbe farcela.
io_e il

@me_and - Se lo riuscissi, lo rilascerei sicuramente. Tuttavia, mentre i primi pochi file sono stati compilati correttamente semplicemente cambiando #include <linux/filename.h>in #include <cygwin/filename.h>e simili, in seguito ho scoperto che i driver del socket Cygwin mancano anche delle funzionalità necessarie per iputils. Non è solo una questione di costruzione di iputils per Cygwin, è anche una questione di costruzione di Cygwin per lavorare con iputils. Ci proverò più tardi se avrò del tempo libero.
Kevin Vermeer,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.