Attualmente utilizzo questo codice per recuperare il ping di un sistema di destinazione. Tuttavia funziona fino ad ora solo sotto Linux ed è probabilmente dipendente dalle impostazioni locali. Per aggiungere il supporto per Windows sarà probabilmente ancora più complicato. C'è un modo semplice o una libreria per ottenere il ping di un sistema di destinazione? Lavoro principalmente con Qt, quindi sarebbe l'ideale se potessi lavorare con QSockets.Ottieni il ping da una destinazione remota con Qt (Windows/Linux)
#ifndef _WIN32
QProcess ping;
ping.start("ping", QStringList() << "-c 1" << m_sHostName);
if(ping.waitForFinished(250)) {
while(ping.canReadLine()) {
QString line = ping.readLine();
if(line.contains("time=")) {
int iStart = line.indexOf("time=") + 5;
int iStop = line.indexOf(" ms");
QStringRef latency(&line, iStart, iStop-iStart);
m_vNetwork_s.append(time_s);
m_vLatency_ms.append(QString(latency.toLocal8Bit()).toDouble());
break;
}
}
}
#endif
Per quanto riguarda ICMP con Qt, ho trovato questo link: http://lists.qt-project.org/pipermail/interest/2013-January/005746.html Sembra che tu non possa farlo con le classi di rete di Qt –