How can I check the network connection type using the Windows API?
How can I programmatically retrieve the current connection type (eg. LAN or Direct connection)?
InternetGetConnectedState() isn't very reliable.
For instance, I'm co开发者_Python百科nnected to a wireless network, but ConTypeRet is 18, which is INTERNET_CONNECTION_LAN & INTERNET_RAS_INSTALLED. Isn't there any way to make sure that ConTypeRet is either INTERNET_CONNECTION_LAN or INTERNET_CONNECTION_MODEM?
I'm confused by your "It is unreliable" statement. You can just check for both:
bool IsLanOrModem() {
DWORD result;
if (!InternetGetConnectedState(&result, 0))
throw GetLastError();
return result & INTERNET_CONNECTION_LAN || result & INTERNET_CONNECTION_MODEM;
}
精彩评论