利用curl lib 检测计算机联网状态

一个项目需要对用户的计算机进行联网检测,判断是否正连接着互联网。
一般有两个办法,一是判断本地连接的ip是否为 "0.0.0.0"
如果是"0.0.0.0"表示没有联网,但是如果用户自己设定了IP地址,而没有连接互联网的话,这个办法基本无效.
 
还有一个办法就是类似于 ping 的方法,向服务端某个文件发出获取请求,根据返回值来判断用户是否连接了互联网。
 
以下是代码:
 
利用curl lib 检测计算机联网状态//检查联网状态 
利用curl lib 检测计算机联网状态int UpdateShareFunction::CheckIsNetWorking() 
利用curl lib 检测计算机联网状态
利用curl lib 检测计算机联网状态    //创建curl对象 
利用curl lib 检测计算机联网状态    CURL *curl; 
利用curl lib 检测计算机联网状态    //创建curlcode对象 
利用curl lib 检测计算机联网状态    CURLcode res; 
利用curl lib 检测计算机联网状态 
利用curl lib 检测计算机联网状态    curl = curl_easy_init(); 
利用curl lib 检测计算机联网状态    if(curl) { 
利用curl lib 检测计算机联网状态        //设置一个请求文件地址 
利用curl lib 检测计算机联网状态        curl_easy_setopt(curl, CURLOPT_URL, "http://www.xxxx.tv/release/remote.update"); 
利用curl lib 检测计算机联网状态        //执行请求操作,将返回值交给res 
利用curl lib 检测计算机联网状态        res = curl_easy_perform(curl); 
利用curl lib 检测计算机联网状态        //res=0的情况表示接收到信息,反之则没有收到信息 
利用curl lib 检测计算机联网状态        if(res!=0) 
利用curl lib 检测计算机联网状态        { 
利用curl lib 检测计算机联网状态             //没有联网 
利用curl lib 检测计算机联网状态             return false
利用curl lib 检测计算机联网状态        } 
利用curl lib 检测计算机联网状态        else 
利用curl lib 检测计算机联网状态        { 
利用curl lib 检测计算机联网状态             //已经联网 
利用curl lib 检测计算机联网状态             return true
利用curl lib 检测计算机联网状态 
利用curl lib 检测计算机联网状态        } 
利用curl lib 检测计算机联网状态        /* 释放资源 */ 
利用curl lib 检测计算机联网状态        curl_easy_cleanup(curl); 
利用curl lib 检测计算机联网状态    } 
利用curl lib 检测计算机联网状态    return false
利用curl lib 检测计算机联网状态}
 
根据这个函数整合了一个软件自动更新代码:
 
利用curl lib 检测计算机联网状态
利用curl lib 检测计算机联网状态void ilcdUpdateAwokeMain::Init() 
利用curl lib 检测计算机联网状态
利用curl lib 检测计算机联网状态        //创建UpdateShareFunction实例 
利用curl lib 检测计算机联网状态        UpdateShareFunction myUpdateShareFunction; 
利用curl lib 检测计算机联网状态        char locver[10]; 
利用curl lib 检测计算机联网状态        char nextVersionStr[10]; 
利用curl lib 检测计算机联网状态        //拿到本地版本 
利用curl lib 检测计算机联网状态        myUpdateShareFunction.GetLocalVersionStr(locver); 
利用curl lib 检测计算机联网状态        //拿到远程版本 
利用curl lib 检测计算机联网状态        myUpdateShareFunction.GetNextVersionStr(locver,nextVersionStr); 
利用curl lib 检测计算机联网状态 
利用curl lib 检测计算机联网状态        wxString locversion; 
利用curl lib 检测计算机联网状态        wxString nextversion; 
利用curl lib 检测计算机联网状态        wxString showVersion; 
利用curl lib 检测计算机联网状态 
利用curl lib 检测计算机联网状态        locversion=locversion.FromUTF8(locver); 
利用curl lib 检测计算机联网状态        locversion.append(wxT("---->升级到---->")); 
利用curl lib 检测计算机联网状态        nextversion=locversion.FromUTF8(nextVersionStr); 
利用curl lib 检测计算机联网状态        locversion.append(nextversion); 
利用curl lib 检测计算机联网状态        m_listBox1->Append(locversion); 
利用curl lib 检测计算机联网状态        m_listBox1->Select(0); 
利用curl lib 检测计算机联网状态}
本文转自阿汐 51CTO博客,原文链接:http://blog.51cto.com/axiii/123149,如需转载请自行联系原作者
上一篇:没有公网IP地址?亿联教你如何拨通视频会议!


下一篇:利用函数计算实现网络游戏或视频直播中的敏感词检测