QT在linux下获取网络类型
2019-10-30 16:01:03来源:博客园 阅读 ()
QT在linux下获取网络类型
开发中遇到这样一个需求,需要判断当前网络的类型(wifi或者4G或者网线),在这里给大家一块分享下:
1、这里有一个linux指令:nmcli(大家自行百度即可)
2、nmcli device status 这个指令就会打印出你想要的东西
3、如何用QT去调取这个指令获取结果来进行上报呢?来一段代码吧
//执行linux指令获取返回结果 QString Common::executeLinuxCmd(QString strCmd) { QProcess p; p.start("bash", QStringList() <<"-c" << strCmd); p.waitForFinished(); QString strResult = p.readAllStandardOutput(); return strResult; } //获取网络状态码 int PLC::networkStatus() { QString strDevice = Common::executeLinuxCmd("nmcli device status"); QStringList listDevice = strDevice.split("\n"); QString strBin = ""; QString strWifi = "0"; QString str4G = "0"; QString strWired = "0"; foreach(QString tmpStr , listDevice) { QStringList strSplit = tmpStr.split(" "); QStringList strTotal; foreach(QString str, strSplit) { if(str != "") { strTotal.append(str); } } if(strTotal.size() >= 3) { if(strTotal.at(2) == "connected") { if(strTotal.at(1) == "wifi") { strWifi = "1"; }else if(strTotal.at(1) == "ethernet") { strWired = "1"; }else if(strTotal.at(1) == "gsm") { str4G = "1"; } } } } strBin.append(str4G).append(strWifi).append(strWired); int result = binToDec(strBin); return result; }
原文链接:https://www.cnblogs.com/xupeidong/p/11766796.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Linux—编译安装详解
下一篇:linux组管理和权限管理
- Linux系统如何设置开机自动运行脚本? 2020-06-11
- Linux指令和shell脚本 2020-06-11
- 适合开发者的最佳Linux发行版 2020-06-11
- RAID 1 软件实现(Linux 系统) 2020-06-10
- linux各级目录 2020-06-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash