#include <QCoreApplication>
#include <QDebug>
#include <QTextStream>
#include <QDir>
#include <QFile>
#include <QList>
#include <QThread>
#include <QtNetwork/QNetworkConfigurationManager>
#include <QtNetwork/QNetworkConfiguration>
#include <QtNetwork/QNetworkInterface>
#define ETH_IF_NAME   "eth0"
#define ETH_IF_PPP0   "ppp0"
#define ETH_IF_PPP1   "ppp1"
#define ETH_IF_ETH1   "eth1"
#define ETH_IF_USB0   "usb0"
#define ETH_NAME_SERVER     "nameserver 127.0.0.1"

static bool status[2]={0};

bool CheckNetInfo()
{
    system("ifconfig eth0 up");
    system("ifconfig usb0 up");
    memset(status, 0 ,sizeof(status));

    QList<QNetworkInterface> ifaces = QNetworkInterface::allInterfaces();

    for (int i = 0; i < ifaces.count(); i++)
    {
        QNetworkInterface iface = ifaces.at(i);
        if ( iface.flags().testFlag(QNetworkInterface::IsUp)
             && iface.flags().testFlag(QNetworkInterface::IsRunning)
             && !iface.flags().testFlag(QNetworkInterface::IsLoopBack)
             && ((iface.name() == ETH_IF_PPP0) ||(iface.name() == ETH_IF_PPP1)
                 ||(iface.name() == ETH_IF_ETH1) ||(iface.name() == ETH_IF_USB0))
             ||(iface.name() == ETH_IF_NAME) ||(iface.name() == ETH_NAME_SERVER)
           )
        {
            for (int j=0; j<iface.addressEntries().count(); j++)
            {
                    qDebug() << iface.name()<< "isConnected" << endl;
                    if(iface.name() == ETH_IF_USB0)
                        status[0] = true;
                    else if(iface.name() == ETH_IF_NAME)
                        status[1] = true;
            }
        } else {
            for (int j=0; j<iface.addressEntries().count(); j++)
            {
                    qDebug() << iface.name()<< "isNotConnected" << endl;
            }
        }
    }

}

qt检测网络连接状态【只能检测和路由器的连接,不能测试到外网的连接】的更多相关文章

  1. Windows 实例搭建的 FTP 在外网无法连接和访问

    外网无法连接和访问 Windows 实例搭建的 FTP,这种情况可能是由于以下两种原因导致的: 安全组拦截外网访问 防火墙拦截 FTP 进程 安全组拦截外网访问 这种情况下,可以尝试新建一条入方向的安 ...

  2. ftp搭建后外网无法连接和访问阿里云服务器(非软件)

    阿里云服务器由于性价比高,是不少企业建站朋友们的首选.而在购买阿里云服务器后,不少客户反映其在搭建FTP后出现外网无法访问的问题,这里特意搜集整理了关于ftp搭建后外网无法连接和访问的问题,提供以下解 ...

  3. mysql解决外网不能连接

    mysql解决外网不能连接 Author:SimpleWu 或许有些时候会遇到通过ip地址访问项目的数据库,可是访问失败了. 现在给大家一种解决方案: #进入mysql数据库 USE mysql; # ...

  4. redis外网无法连接问题

    1.外网无法连接redis 解决方法: 把redis.conf里的bind 127.0.0.1注释掉,不行的话把127.0.0.1修改成0.0.0.0 2.make的时候显示没有gcc 解决方法: 安 ...

  5. iOS 网络与多线程--1.检测网络链接状态

    通过Reachability库,检测设备的网络连接状况. 使用到的类库:Reachability Reachability库,是一个iOS环境下,检测设备网络状态的库,可以在网络上搜索下载. 使用之前 ...

  6. python 判断网络通断同时检测网络的状态

    思路:通过http判断网络通断,通过ping获取网络的状态 注意:不同平台下,调用的系统命令返回格式可能不同,跨平台使用的时候,注意调整字符串截取的值 主程序:network_testing_v0.3 ...

  7. 云主机不能外网ssh连接,只能内网ssh连接的问题处理

    某台服务器外网无法ssh,内网可以ssh连接,ping值延时比较大 安装iftop查看流量 yum install -y iftop iftop界面含义如下 第一行:带宽显示 中间部分:外部连接列表, ...

  8. 如何允许外网可以连接mysql数据库

    1.首先检查mysql所在服务器的防火墙,如果限制了外网对3306端口的连接,那么放开限制Linux服务器中执行 iptables -L   可以查看当前的防火墙规则iptables -F   可以清 ...

  9. WebSocket部署服务器外网无法连接解决方案

    首先要说的是我遇见的问题: WebSocket connection to 'ws://www.xxxx.com/xxx/xx' failed: Error during WebSocket hand ...

随机推荐

  1. javascript实现小九九乘法口诀

    <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/h ...

  2. 关于c++primer的一个代码错误

    近期看c++primer第四版的标准容器vector.讲到对vector容器的插入删除元素会使得end()的迭代器失效的问题,所以不建议程序猿对end()的存储. vector<int> ...

  3. uva 103 Stacking Boxes(DAG)

    题目连接:103 - Stacking Boxes 题目大意:有n个w维立体, 输出立体互相嵌套的层数的最大值, 并输出嵌套方式, 可嵌套的要求是外层立体的w条边可以分别对应大于内层立体. 解题思路: ...

  4. js复制button在ie下的解决方式

    源代码例如以下: <input class="width200" maxlength="32" type="text" id=&quo ...

  5. sql2008R2数据库备份--双机备份

    二.解决SQL2008代理作业出现错误: c001f011维护计划创建失败的解决方法 SQL2008数据库总会出现从 IClassFactory 为 CLSID 为 {17BCA6E8-A95D-49 ...

  6. Linux 07 故障恢复

    1. 模拟MBR扇区被破坏后的修复. MBR故障恢复: 1.备份 添加硬盘 启动操作系统: 添加硬盘: 对分区格式化: 挂载: 做备份: 破坏MBR 重启系统: 关闭虚拟机 设置光盘启动 救援模式: ...

  7. Nicholas C. Zakas如何面试前端工程师

    转载自:http://www.cnblogs.com/yizuierguo/archive/2010/02/04/1663767.html Original Post:Interviewing the ...

  8. JS控制静态页面之间传递参数获取参数并应用

    在项目中遇到这也一个问题: 有a.html和b.html. 1.a页面已经打开,b页面尚未打开,我希望在a页面设置好一些列参数,比如背景色,宽度等参数,传递给b页面,好让b页面在打开就能应用. 2.a ...

  9. 边缘检测之Sobel检测算子

    在讨论边缘算子之前,首先给出一些术语的定义: (1)边缘:灰度或结构等信息的突变处,边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像. (2)边缘点:图像中具有坐标[x,y],且处在 ...

  10. 关于用自带摄像机录像无法捕获uri 问题解决

    这个 我自己调用,好像并没有出现什么问题. 下面是我的代码.你们可以参照一下 File file = new File(Environment.getExternalStorageDirectory( ...