+15
-17
@@ -26,6 +26,17 @@ quint32 ipv4str_to_int(const QString& ipstr)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Ping(QString strPingIP)
|
||||||
|
{
|
||||||
|
QProcess pingProcess;
|
||||||
|
QString strArg = "ping " + strPingIP + " -n 1 -i 2";
|
||||||
|
pingProcess.start(strArg, QIODevice::ReadOnly);
|
||||||
|
pingProcess.waitForFinished(-1);
|
||||||
|
QString p_stdout = QString::fromLocal8Bit(pingProcess.readAllStandardOutput());
|
||||||
|
return p_stdout.contains("TTL=");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
trytryping::trytryping()
|
trytryping::trytryping()
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -34,28 +45,15 @@ trytryping::trytryping()
|
|||||||
void trytryping::run()
|
void trytryping::run()
|
||||||
{
|
{
|
||||||
emit try_one(1);
|
emit try_one(1);
|
||||||
qint16 exitCode=0;
|
|
||||||
QString ip=this->ipstr;
|
QString ip=this->ipstr;
|
||||||
#ifdef Q_OS_WIN
|
|
||||||
QString strArg = "ping " + ip + " -n 1 -i 2";
|
if(Ping(ip))
|
||||||
exitCode = QProcess::execute(strArg);
|
|
||||||
#else
|
|
||||||
//其他平台(Linux或Mac)
|
|
||||||
exitCode = QProcess::execute("ping", QStringList() << "-c 1" << "-t 2" << ip));
|
|
||||||
#endif
|
|
||||||
if(0 == exitCode)
|
|
||||||
{
|
{
|
||||||
//it's alive
|
|
||||||
//qDebug() << "shell ping " + ip + " sucessed!";
|
|
||||||
emit connect_ok(QString("Ping ").append(ip));
|
emit connect_ok(QString("Ping ").append(ip));
|
||||||
//发射该IP在线的信号
|
|
||||||
|
|
||||||
} else {
|
|
||||||
//qDebug() << "shell ping " + ip + " failed!";
|
|
||||||
//发射IP离线的信号
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
emit try_one(-1);
|
emit try_one(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user