2010-04-10 65 views
2

如何以编程方式检索当前连接类型(例如LAN或Direct连接)?如何使用Windows API检查网络连接类型?

InternetGetConnectedState()不是很可靠。

例如,我连接到无线网络,但ConTypeRet为18,即INTERNET_CONNECTION_LAN & INTERNET_RAS_INSTALLED。没有办法确保ConTypeRet是INTERNET_CONNECTION_LAN还是INTERNET_CONNECTION_MODEM?

+0

什么是不可靠的呢?你正在使用局域网连接,这就是你所得到的......无线局域网仍然是局域网。 – 2010-04-10 21:32:26

回答

0

我很困惑你的“这是不可靠的”声明。你可以只检查两者:

bool IsLanOrModem() { 
    DWORD result; 
    if (!InternetGetConnectedState(&result, 0)) 
     throw GetLastError(); 
    return result & INTERNET_CONNECTION_LAN || result & INTERNET_CONNECTION_MODEM; 
}