// test.cpp : Defines the entry point for the console application.
//
#include"winsock2.h"
#include <stdio.h>
#include <windows.h>
#include <wininet.h>
#include <Sensapi.h>
#include <time.h>
#pragma comment(lib, "Sensapi.lib")
#pragma comment(lib, "Wininet.lib")
/
// The one and only application object
//CWinApp theApp;
int Fun_InternetGetConnectedState()
{
//#define INTERNET_CONNECTION_MODEM 1
//#define INTERNET_CONNECTION_LAN 2
//#define INTERNET_CONNECTION_PROXY 4
//#define INTERNET_CONNECTION_MODEM_BUSY 8
DWORD flags;//上网方式
BOOL m_bOnline=TRUE;//是否在线
m_bOnline=InternetGetConnectedState(&flags,0);
if(m_bOnline)//在线
{
if ((flags & INTERNET_CONNECTION_MODEM) ==INTERNET_CONNECTION_MODEM)
{
return 0;
printf("在线:拨号上网\n");
}
if ((flags & INTERNET_CONNECTION_LAN) ==INTERNET_CONNECTION_LAN)
{
return 0;
printf("在线:通过局域网\n");
}
if ((flags & INTERNET_CONNECTION_PROXY) ==INTERNET_CONNECTION_PROXY)
{
return 0;
printf("在线:代理\n");
}
if ((flags & INTERNET_CONNECTION_MODEM_BUSY) ==INTERNET_CONNECTION_MODEM_BUSY)
{
return 0;
printf("MODEM被其他非INTERNET连接占用\n");
}
}
else
{
return 1;
printf("不在线\n");
}
}
int Fun_IsNetworkAlive()
{
DWORD flags;//上网方式
BOOL m_bOnline=TRUE;//是否在线
m_bOnline=IsNetworkAlive(&flags);
if(m_bOnline)//在线
{
if ((flags & NETWORK_ALIVE_LAN) ==NETWORK_ALIVE_LAN)
{
printf("在线:NETWORK_ALIVE_LAN\n");
return 0;
}
if ((flags & NETWORK_ALIVE_WAN) ==NETWORK_ALIVE_WAN)
{
printf("在线:NETWORK_ALIVE_WAN\n");
return 0;
}
if ((flags & NETWORK_ALIVE_AOL) ==NETWORK_ALIVE_AOL)
{
printf("在线:NETWORK_ALIVE_AOL\n");
return 0;
}
}
else
{
printf("不在线\n");
return 1;
}
}
void get_local_time1(char* buffer)
{
SYSTEMTIME t_time;
GetLocalTime(&t_time);
sprintf(buffer, "%04d/%02d/%02d-%02d:%02d:%02d %02d", t_time.wYear, t_time.wMonth,t_time.wDay, t_time.wHour, t_time.wMinute, t_time.wSecond, t_time.wMilliseconds);
}
int check()
{
if(Fun_IsNetworkAlive())
{
printf("网卡禁用\n");
return 1;
}
int err = 0;
CHAR szUrl[] = "http://www.baidu.com/";
CHAR szAgent[] = "";
HINTERNET hInternet1 = InternetOpen(NULL,INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,NULL);
if (NULL == hInternet1)
{
InternetCloseHandle(hInternet1);
return 1;
}
HINTERNET hInternet2 = InternetOpenUrl(hInternet1,szUrl,NULL,NULL,INTERNET_FLAG_NO_CACHE_WRITE,NULL);
if (NULL == hInternet2)
{
err = GetLastError();
if ((err == ERROR_INTERNET_NAME_NOT_RESOLVED) ||
(err == ERROR_INTERNET_CANNOT_CONNECT) ||
(err == ERROR_INTERNET_TIMEOUT))
{
// probably not connected...handle appropriately
/*...*/
InternetCloseHandle(hInternet2);
InternetCloseHandle(hInternet1);
return 1;
}
}
else
{
printf("网络连接成功\n");
return 0;
}
}
void main()
{
//Fun_InternetGetConnectedState();
char now[32];
memset(now, 0, sizeof(now));
get_local_time1(now);
printf("TIME1 IS :%s\n", now);
int i = check();
printf("%d\n", i);
get_local_time1(now);
printf("TIME2 IS :%s\n", now);
getchar();
}
检查本地网卡状态,如果网卡正常,再判断能否联网
最新推荐文章于 2024-03-29 17:43:37 发布