您的位置:首页 > 理论基础 > 计算机网络

网络状态检测方法测试结果

2015-04-13 15:05 369 查看



一、测试函数列表

1           IsInternetConnected

2           InetIsOffline

3           InternetAttemptConnect

4           InternetCheckConnection

5           InternetQueryOption

6           InternetGetConnectedState

二、测试环境

NET: Company LAN

PC: EeePC 1005H

三:测试Code

#include <Windows.h>
#include <WinInet.h>
// Lib
#pragma comment(lib,"wininet.lib")

// Internet Status Include
#include "InternetStatus.h"
#include <IntShCut.h>
typedef BOOL (__stdcall *FUN)(DWORD);
FUN isOffLine;

// =================================================================== NetWork Status
int _tmain(int argc, _TCHAR* argv[])
{
// InternetOpen() method Test
OutputDebugString(TEXT("\r\n=======1=========InternetOpen() Method Test Result: \r\n\n"));
if (IsInternetConnected())
{
OutputDebugString(TEXT("\r\n Internet Connected ~_~ \r\n"));
}
else
{
OutputDebugString(TEXT("\r\n Internet Not Connected! \r\n"));
}
OutputDebugString(TEXT("\r\n=======1=========InternetOpen() Method Test Result: \r\n\n"));

// InetIsOffline() method Test
OutputDebugString(TEXT("\r\n=======2=========InetIsOffline() Method Test Result: \r\n\n"));
HINSTANCE hDll = LoadLibrary(TEXT("C:\\WINDOWS\\system32\\url.dll"));
if (hDll == NULL)
{
OutputDebugString(TEXT("LoadLibrary Errror:: \r\n"));
goto EndLoadDll;
}
isOffLine = (FUN)GetProcAddress(hDll, "InetIsOffline");
if (isOffLine == NULL)
{
OutputDebugString(TEXT("GetProcAddress Errror:: \r\n"));
goto EndLoadDll;
}
if (!isOffLine(0))
{
OutputDebugString(TEXT("Internet Connected ~_~ \r\n"));
}
else
{
OutputDebugString(TEXT("Internet Not Connected! \r\n"));
}
EndLoadDll:
if (hDll)
{
FreeLibrary(hDll);
}
OutputDebugString(TEXT("\r\n=======2=========InetIsOffline() Method Test Result: \r\n\n"));

// InternetAttemptConnect() Test
OutputDebugString(TEXT("\r\n=======3=========InternetAttemptConnect() Method Test Result: \r\n\n"));
TCHAR tszDebugMsg[100] = {0};
DWORD dwres = InternetAttemptConnect(0);
if (dwres != ERROR_SUCCESS )
{
_stprintf_s(tszDebugMsg, 100, TEXT("InternetAttemptConnect failed error code is %d.\r\n"), dwres);
}
else
{
_stprintf_s(tszDebugMsg, 100, TEXT("Internet Connected ~_~ (not consider connect mode)\r\n"));
}
OutputDebugString(tszDebugMsg);
OutputDebugString(TEXT("\r\n=======3=========InternetAttemptConnect() Method Test Result: \r\n\n"));

// InternetCheckConnection() Method Test
OutputDebugString(TEXT("\r\n=======4.1=========InternetCheckConnection() Method Test Result: \r\n\n"));
BOOL bres = InternetCheckConnection(TEXT("https://vip.asus.com/"), FLAG_ICC_FORCE_CONNECTION, 0);
if (!bres)
{
_stprintf_s(tszDebugMsg, 100, TEXT("InternetCheckConnection asus failed error code is %d.\r\n"), GetLastError());
}
else
{
_stprintf_s(tszDebugMsg, 100, TEXT("Internet Connected asus ~_~ (physical connect sucess)\r\n"));
}
OutputDebugString(tszDebugMsg);
OutputDebugString(TEXT("\r\n=======4.1=========InternetCheckConnection() Method Test Result: \r\n\n"));

// InternetCheckConnection() Method Test
OutputDebugString(TEXT("\r\n=======4.2=========InternetCheckConnection() Method Test Result: \r\n\n"));
bres = InternetCheckConnection(TEXT("https://www.baidu.com/"), FLAG_ICC_FORCE_CONNECTION, 0);
if (!bres)
{
_stprintf_s(tszDebugMsg, 100, TEXT("InternetCheckConnection baidu failed error code is %d.\r\n"), GetLastError());
}
else
{
_stprintf_s(tszDebugMsg, 100, TEXT("Internet Connected baidu ~_~ (physical connect sucess)\r\n"));
}
OutputDebugString(tszDebugMsg);
OutputDebugString(TEXT("\r\n=======4.2=========InternetCheckConnection() Method Test Result: \r\n\n"));

// InternetQueryOption() Metho
b421
d Test
OutputDebugString(TEXT("\r\n=======5=========InternetQueryOption() Method Test Result: \r\n\n"));
BYTE btInetSet[100] = {0};
DWORD dwInetSetLen = 100;
bres = InternetQueryOption(NULL, INTERNET_OPTION_CONNECTED_STATE, btInetSet, &dwInetSetLen);
if (!bres)
{
_stprintf_s(tszDebugMsg, 100, TEXT("InternetQueryOption failed error code is %d.\r\n"), GetLastError());
}
else
{
_stprintf_s(tszDebugMsg, 100, TEXT("Internet Connected ~_~ (can get Internet service, internet settting ok) \r\n"));
}
OutputDebugString(tszDebugMsg);
OutputDebugString(TEXT("\r\n=======5=========InternetQueryOption() Method Test Result: \r\n\n"));

// InternetGetConnectedState() Method Test
OutputDebugString(TEXT("\r\n=======6=========InternetGetConnectedState() Method Test Result: \r\n\n"));
DWORD dwFlags;
bres = InternetGetConnectedState(&dwFlags, 0);
if (!bres)
{
_stprintf_s(tszDebugMsg, 100, TEXT("InternetGetConnectedState failed error code is %d.\r\n"), GetLastError());
}
else
{
_stprintf_s(tszDebugMsg, 100, TEXT("Internet Connected ~_~ (sucess status is 0x%x) \r\n"),dwFlags);
}
OutputDebugString(tszDebugMsg);
OutputDebugString(TEXT("\r\n=======6=========InternetGetConnectedState() Method Test Result: \r\n\n"));

system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C Plus Web