检查本地网卡状态,如果网卡正常,再判断能否联网

// 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();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值