C++ 判断网络是否连通

使用InternetGetConnectedState这个API判断网络是否连通

详细说明:
虽然MSDN中定义了7种参数类型,但实际中wininet.h头文件中只对四种类型的值进行了定义
7种类型:
INTERNET_CONNECTION_LAN          局域网
INTERNET_CONNECTION_MODEM        拨号上网
INTERNET_CONNECTION_PROXY       代理
INTERNET_CONNECTION_MODEM_BUSY  代理被占用

INTERNET_CONNECTION_CONFIGURED    虽然可以联网,但当前不可用
INTERNET_CONNECTION_OFFLINE     离线
INTERNET_RAS_INSTALLED       RAS安装

 Wininet.h头文件中值定义:
// Flags for InternetGetConnectedState
#define INTERNET_CONNECTION_MODEM             1
#define INTERNET_CONNECTION_LAN                2
#define INTERNET_CONNECTION_PROXY             4
#define INTERNET_CONNECTION_MODEM_BUSY      8

void InternetTell()
{
    DWORD flags;//上网方式
    BOOL m_bOnLine = TRUE; //是否在线
    m_bOnLine = InternetGetConnectedState(&flags,0);
    if(m_bOnLine)
    {
        if ((flags & INTERNET_CONNECTION_MODEM) ==INTERNET_CONNECTION_MODEM) 
            cout<<"在线:拨号上网\n"; 
        if ((flags & INTERNET_CONNECTION_LAN) ==INTERNET_CONNECTION_LAN) 
            cout<<"在线:通过局域网\n"; 
        if ((flags & INTERNET_CONNECTION_PROXY) ==INTERNET_CONNECTION_PROXY) 
            cout<<"在线:代理\n"; 
        if ((flags & INTERNET_CONNECTION_MODEM_BUSY) ==INTERNET_CONNECTION_MODEM_BUSY) 
            cout<<"MODEM被其他非INTERNET连接占用\n"; 
    }else
        cout<<"非在线\n"; 
}

int main()

{

         InternetTell();

         return 0;

}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值