/ / imposta la scadenza del ping predefinita in linux - linux, ping, icmp

imposta la scadenza ping predefinita in linux - linux, ping, icmp

Voglio impostare la scadenza predefinita per il ping in alcuni file di impostazioni o giù di lì. Il mio programma si blocca quando si tenta di connettersi a un indirizzo IP senza ping.

Nel terminale posso chiamare "ping 123.0.0.1 -w 5" e non durerà per sempre, ma non posso impostare alcuna scadenza nel codice.

risposte:

3 per risposta № 1

Shell Shell:

Nel tuo .bashrc aggiungere il seguente:

function ping {
/bin/ping $@ -w5
}

Ciò creerà una funzione wrapper, che imposterà il timeout su 5 secondi per tutte le chiamate ping

Nota: la versione precedente sovrascriverà a -w param usato nella riga di comando. Se si desidera comunque essere in grado di sovrascrivere il timeout predefinito tramite la riga di comando anziché posizionare il -w5 prima di $@:

function ping {
/bin/ping -w5 $@
}

Soluzione C pura:

Non darò un esempio completo qui per brevità. Potresti trovarne uno Qui per esempio. Nell'esempio dato, dovrai sostituire il recvfrom() chiamata che legge la risposta ICMP e può essere bloccata da a select() o poll() chiamare con un timeout.