void Ping(QString strPingIP)//strPingIP 对方IP地址
{
//QString strPingIP = "192.168.1.88";
QProcess pingProcess;
QString strArg = "ping " + strPingIP + " -n 1 -i 2"; //strPingIP 为设备IP地址
pingProcess.start(strArg, QIODevice::ReadOnly);
pingProcess.waitForFinished(-1);
QString p_stdout = QString::fromLocal8Bit(pingProcess.readAllStandardOutput());
qDebug() << p_stdout;
bool bPingSuccess = false;
if (p_stdout.contains("TTL=")) //通过特殊字符串进行判断ping是否成功
{
printf("Ping true\n");
bPingSuccess = true;
}
else
{
printf("Ping false\n");
bPingSuccess = false;
}
return;
}
本文介绍了一种利用QProcess类在C++中实现Ping功能的方法。通过构造特定的命令行参数并调用QProcess::start启动进程,可以实现向指定IP地址发送ICMP请求的功能。文中详细解释了如何解析返回的输出以确定Ping操作是否成功。
798

被折叠的 条评论
为什么被折叠?



