// TestNetConnection.cpp : Defines the entry point for the console application.<br />//<br />// test.cpp : Defines the entry point for the console application.<br />//<br />#include "stdafx.h"<br />#include <windows.h><br />#include <iostream><br />using namespace std;<br />#include <Wininet.h><br />#pragma comment (lib, "Wininet.lib")<br />#include <Sensapi.h><br />#pragma comment (lib, "Sensapi.lib")<br />/*<br />//本機網路連接類型(成功)<br />#define NET_TYPE_RAS_DIAL_UP_CONNECT_NET 0x01 //上網類型:採用RAS撥號連線上網 0x01<br />#define NET_TYPE_LAN_CONNECT_NET 0x02 //上網類型:採用網卡通過區域網路上網 0x02<br />#define NET_TYPE_PROXY_CONNECT_NET 0x04 //上網類型:使用Proxy 伺服器上網 0x04<br />#define NET_TYPE_RAS_INSTALL 0x10 //RAS安裝 0x10<br />*/<br />void Fun_InternetGetConnectedState()<br />{<br />DWORD flags;//上網方式<br />BOOL m_bOnline=TRUE;//是否線上<br />m_bOnline=InternetGetConnectedState(&flags,0);<br />if(m_bOnline)//線上<br />{<br />if ((flags & INTERNET_CONNECTION_MODEM) ==INTERNET_CONNECTION_MODEM)<br />{<br />cout<<"線上:撥接/n";<br />}<br />if ((flags & INTERNET_CONNECTION_LAN) ==INTERNET_CONNECTION_LAN)<br />{<br />cout<<"線上:通過區域網路/n";<br />}<br />if ((flags & INTERNET_CONNECTION_PROXY) ==INTERNET_CONNECTION_PROXY)<br />{<br />cout<<"線上:代理/n";<br />}<br />if ((flags & INTERNET_CONNECTION_MODEM_BUSY) ==INTERNET_CONNECTION_MODEM_BUSY)<br />{<br />cout<<"MODEM被其他非INTERNET串連佔用/n";<br />}<br />}<br />else<br />cout<<"不線上/n";<br />}<br />void Fun_IsNetworkAlive()<br />{<br />DWORD flags;//上網方式<br />BOOL m_bOnline=TRUE;//是否線上<br />m_bOnline=IsNetworkAlive(&flags);<br />if(m_bOnline)//線上<br />{<br />if ((flags & NETWORK_ALIVE_LAN) ==NETWORK_ALIVE_LAN)<br />{<br />cout<<"線上:NETWORK_ALIVE_LAN/n";<br />}<br />if ((flags & NETWORK_ALIVE_WAN) ==NETWORK_ALIVE_WAN)<br />{<br />cout<<"線上:NETWORK_ALIVE_WAN/n";<br />}<br />if ((flags & NETWORK_ALIVE_AOL) ==NETWORK_ALIVE_AOL)<br />{<br />cout<<"線上:NETWORK_ALIVE_AOL/n";<br />}<br />}<br />else<br />cout<<"不線上/n";<br />}<br />int _tmain(int argc, _TCHAR* argv[])<br />{<br />int nRetCode = 0;<br />int i=0;<br />while (TRUE)<br />{<br />cout << "請選擇測試的方式:/n"<br /><< "1. InternetGetConnectedState/n"<br /><< "2. IsNetworkAlive"<br /><< endl;<br />cin >> i;<br />switch(i)<br />{<br />case 1:<br />Fun_InternetGetConnectedState();<br />break;<br />case 2:<br />Fun_IsNetworkAlive();<br />break;<br />default:<br />cout << "錯誤!/n";<br />}<br />cout << endl;<br />}<br />return nRetCode;<br />}<br />