windows如何获取当前应用程序使用的网络类型

请问各位,Windows下如何获取当前应用程序使用的网络类型?是WIFI还是有线网络.
1.目前实在是没找到类似安卓或者IOS那样的直接就可以读取的API。有的话跪求
2.现在所能想到的就是使用GetAdaptersInfo遍历获取到所有的网卡类型和对应的IP地址,
然后根据gethostbyname得到本地地址,用这个本地地址去匹配遍历得到的网卡IP。这样是否会有问题呢(考虑多网卡的情况)

windows上面没有直接提供这一类API,这也不是它所需要支持的,一般是自己对各种类型做分析,然后提炼一些特征出来

判断连接状态:
BOOL bRet = InternetCheckConnection("http://www.ocean-soft.com.cn/", FLAG_ICC_FORCE_CONNECTION, 0);
判断上网类型:
CString str;
DWORD dwFlag;
if(!InternetGetConnectedState(&dwFlag, 0))
{
str = "未连接到网络";
}
else if(dwFlag & INTERNET_CONNECTION_MODEM)
{
str = "上网类型:采用RAS拨号连接上网";
}
else if(dwFlag & INTERNET_CONNECTION_LAN)
{
str = "上网类型:采用网卡通过局域网上网";
}
else if(dwFlag & INTERNET_CONNECTION_PROXY)
{
str = "上网类型:使用代理服务器上网";
}

你说的这个和IsNetWork类似,但是并不是我需要的,我想找到的是当前使用的网络类型,指使用3G/4G无线网卡,WIFI上网,有线连接这种。类似手机上显示的标志的需求

https://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkinterfacetype(v=vs.90).aspx
Wireless80211是无线
Ethernet是有线

NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface networkInterface in adapters)
{
Console.WriteLine(networkInterface.NetworkInterfaceType);
}