PDA

Visualizza la versione completa : [C] Calcolo distanza tra due macchine in rete


stoppy
16-04-2009, 15:11
Ciao,
in programma C dovrei trovare la distanza tra due macchine collegate in rete. Per far ciņ pensavo al classico ping in modo da avere una metrica basata sul RTT.

Qualcuno ha qualche idea da darmi su come realizzare ciņ? Ho visto la sorgente del ping di linux ma oltre ad essere complessa e sovradimensionata per quello che devo fare non compila.

A me servirebbe una soluzione semplicissima...

Grazie

oregon
16-04-2009, 15:19
Che intendi per distanza?

Se parliamo di "router" tra una macchina e l'altra, allora puoi utilizzare il Time To Live (dovresti scrivere il codice che esegui con un comando tracert ...)

stoppy
16-04-2009, 18:16
Per distanza intendo il tempo che ci mette un pacchetto ad arrivare a destinazione e tornare indietro. Il ping praticamente in cui hai il RTT e ti rendi conto se una macchina č "migliore di un'altra" nell'ottica di sceglierne una "migliore".

Lo devo realizzare in C ed in maniera semplicissima..

Grazie

oregon
16-04-2009, 18:25
Ah ... ecco ... ma il tempo e la distanza, in questo caso, sono cose molto diverse e che non e' possibile mettere in relazione.

Quindi, se vuoi misurare la "latenza" per scegliere un server piuttosto di un altro, puoi misurare il RTT.

In modo semplice, per Windows puoi usare la funzione

GetRTTAndHopCount

della DLL iphlpapi

Documentazione su MSDN
http://msdn.microsoft.com/en-us/library/aa366013(VS.85).aspx?ppud=4

stoppy
16-04-2009, 18:40
Grazie,
sto sotto Linux, conosci qualcosa di simile per il pinguino?

Loading