zoukankan      html  css  js  c++  java
  • 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("
    ");
        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;
    }
    

      

  • 相关阅读:
    nginx公网IP无法访问浏览器
    Internet接入方式
    Adobe Photoshop Lightroom 5.3和序列号
    getopt
    printf
    scanf
    cycling -avoid the vicious cycle
    ACE handle_timeout 事件重入
    Linux查看程序端口占用
    The GNU C Library
  • 原文地址:https://www.cnblogs.com/xupeidong/p/11766796.html
Copyright © 2011-2022 走看看