利用C++代码实现读取ping工具的网络延时数据
直接上代码
#include <QCoreApplication>
#include <QTextCodec>
#include <QProcess>
#include <iostream>
#include <Windows.h>
void checkOnline( QString ip )
{
QProcess exc;
QTextCodec* codec = QTextCodec::codecForName( "GBK" );
QString cmdstr = "ping " + ip; //ping 192.168.15.90 -n 2 -w 4000
while ( true )
{
exc.start( cmdstr ); //执行ping
exc.waitForFinished( -1 ); //等待ping完成
QString outstr = codec->toUnicode( exc.readAll() ); //获取ping结果
//返回不等于-1,说明ping结果包含"往返行程的估计时间"字段,则说明ping成功,网络可达;等于-1,表示没有此字段,说明ping不通
QString test = "ms";
int flag = outstr.indexOf( test );
if ( ( -1 != flag ) )
{
int start_num = flag - 1;
while ( true )
{
if ( outstr.mid( start_num - 1, 1 ) == "<" || outstr.mid( start_num - 1, 1 ) == "=" )
{
break;
}
start_num --;
}
QString time = outstr.mid( start_num, flag - start_num );
std::cout << time.toStdString() << std::endl;
qDebug( "Onlinen" );
}
else
{
qDebug( "Offlinen" );
}
}
}
int main( int argc, char* argv[] )
{
QCoreApplication a( argc, argv );
checkOnline( "192.168.15.90" );
return a.exec();
}
代码运行结果如下
原文链接: https://www.cnblogs.com/zx-hit/p/12809663.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/196748
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!