// TestNetConnection.cpp : Defines the entry point for the console application. // // test.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <windows.h> #include <iostream> using namespace std; #include <Wininet.h> #pragma comment (lib, "Wininet.lib") #include <Sensapi.h> #pragma comment (lib, "Sensapi.lib") /* //本机网络连接类型(成功) #define NET_TYPE_RAS_DIAL_UP_CONNECT_NET 0x01 //上网类型:采用RAS拨号连接上网 0x01 #define NET_TYPE_LAN_CONNECT_NET 0x02 //上网类型:采用网卡通过局域网上网 0x02 #define NET_TYPE_PROXY_CONNECT_NET 0x04 //上网类型:使用代理服务器上网 0x04 #define NET_TYPE_RAS_INSTALL 0x10 //RAS安装 0x10 */ void Fun_InternetGetConnectedState() { 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"; } void Fun_IsNetworkAlive() { DWORD flags;//上网方式 BOOL m_bOnline=TRUE;//是否在线 m_bOnline=IsNetworkAlive(&flags); if(m_bOnline)//在线 { if ((flags & NETWORK_ALIVE_LAN) ==NETWORK_ALIVE_LAN) { cout<<"在线:NETWORK_ALIVE_LAN/n"; } if ((flags & NETWORK_ALIVE_WAN) ==NETWORK_ALIVE_WAN) { cout<<"在线:NETWORK_ALIVE_WAN/n"; } if ((flags & NETWORK_ALIVE_AOL) ==NETWORK_ALIVE_AOL) { cout<<"在线:NETWORK_ALIVE_AOL/n"; } } else cout<<"不在线/n"; } int _tmain(int argc, _TCHAR* argv[]) { int nRetCode = 0; int i=0; while (TRUE) { cout << "请选择测试的方式:/n" << "1. InternetGetConnectedState/n" << "2. IsNetworkAlive" << endl; cin >> i; switch(i) { case 1: Fun_InternetGetConnectedState(); break; case 2: Fun_IsNetworkAlive(); break; default: cout << "错误!/n"; } cout << endl; } return nRetCode; }