亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? lassnetsetting.cpp

?? VisualC++通信協(xié)議實(shí)現(xiàn)的源代碼
?? CPP
字號(hào):
// lassNetSetting.cpp: implementation of the ClassNetSetting class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "GetNetSetting.h"
#include "lassNetSetting.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

ClassNetSetting::ClassNetSetting()
{
   	m_TotalNetCards = 0;
	_tcscpy(m_szDomain,_T(""));
	_tcscpy(m_szHostName,_T(""));
	m_IPEnableRouter = 2;
	m_EnableDNS = 2;
	m_SystemType = Unknow;
}

ClassNetSetting::~ClassNetSetting()
{

}

BOOL ClassNetSetting::GetSetting()
{
    m_SystemType = GetSystemType();
	
	if (m_SystemType == Windows9X)
		return GetSettingOfWin9X();
	else if(m_SystemType == WinNT4orHigher)
		return GetSettingOfWinNT();
	else//不支持老舊的操作系統(tǒng)
		return FALSE;
}

Win32Type ClassNetSetting::GetSystemType()
{
    Win32Type  SystemType;
	DWORD winVer;
	OSVERSIONINFO *osvi;
	
	winVer = GetVersion();
	if(winVer < 0x80000000)
	{
		/*NT */
		SystemType = WinNT3;
		osvi = (OSVERSIONINFO *)malloc(sizeof(OSVERSIONINFO));
		if (osvi != NULL)
		{
			memset(osvi,0,sizeof(OSVERSIONINFO));
			osvi->dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
			GetVersionEx(osvi);
			if (osvi->dwMajorVersion >= 4L)
				SystemType = WinNT4orHigher;//yup, it is NT 4 or higher!
			free(osvi);
		}
	}
	else if  (LOBYTE(LOWORD(winVer)) < 4)
		SystemType=Win32s;/*Win32s*/
	else
		SystemType=Windows9X;/*Windows9X*/
	return SystemType;
}

BOOL ClassNetSetting::GetSettingOfWin9X()
{
    LONG lRet;
	HKEY hMainKey;
	TCHAR szNameServer[256];
	
//得到域名,網(wǎng)關(guān)和DNS的設(shè)置
	lRet = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE,_T("System\\CurrentControlSet\\Services\\VxD\\MSTCP"),0,KEY_READ,&hMainKey);
	if(lRet == ERROR_SUCCESS)
	{
		DWORD dwType,dwDataSize = 256;
		::RegQueryValueEx(hMainKey,_T("Domain"),NULL,&dwType,(LPBYTE)m_szDomain,&dwDataSize);
		dwDataSize = 256;
		::RegQueryValueEx(hMainKey,_T("Hostname"),NULL,&dwType,(LPBYTE)m_szHostName,&dwDataSize);
		dwDataSize = 256;
		::RegQueryValueEx(hMainKey,_T("EnableDNS"),NULL,&dwType,(LPBYTE)&m_EnableDNS,&dwDataSize);
		dwDataSize = 256;
		::RegQueryValueEx(hMainKey,_T("NameServer"),NULL,&dwType,(LPBYTE)szNameServer,&dwDataSize);
	}
	::RegCloseKey(hMainKey);

	HKEY hNetCard = NULL;
//調(diào)用CTcpCfg類的靜態(tài)函數(shù)得到網(wǎng)卡的數(shù)目和相應(yīng)的MAC地址
	m_TotalNetCards = GetMacAddress(m_MacAddr);

	lRet = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE,_T("System\\CurrentControlSet\\Services\\Class\\Net"),0,KEY_READ,&hNetCard);
	if(lRet != ERROR_SUCCESS)//此處失敗就返回
	{
		if(hNetCard != NULL)
			::RegCloseKey(hNetCard);
		return FALSE;
	}

	DWORD dwSubKeyNum = 0,dwSubKeyLen = 256;
//得到子鍵的個(gè)數(shù),通常與網(wǎng)卡個(gè)數(shù)相等
	lRet = ::RegQueryInfoKey(hNetCard,NULL,NULL,NULL,&dwSubKeyNum,&dwSubKeyLen,
		NULL,NULL,NULL,NULL,NULL,NULL);
	if(lRet == ERROR_SUCCESS)
	{
//		m_TotalNetCards = dwSubKeyNum;//網(wǎng)卡個(gè)數(shù)以此為主
		LPTSTR lpszKeyName = new TCHAR[dwSubKeyLen + 1];
		DWORD dwSize;
		for(int i = 0; i < (int)m_TotalNetCards; i++)
		{
			TCHAR szNewKey[256];
			HKEY hNewKey;
			DWORD dwType = REG_SZ,dwDataSize = 256;
			dwSize = dwSubKeyLen + 1;
			lRet = ::RegEnumKeyEx(hNetCard,i,lpszKeyName,&dwSize,NULL,NULL,NULL,NULL);
			if(lRet == ERROR_SUCCESS)
			{
				lRet = ::RegOpenKeyEx(hNetCard,lpszKeyName,0,KEY_READ,&hNewKey);
				if(lRet == ERROR_SUCCESS)
					::RegQueryValueEx(hNewKey,_T("DriverDesc"),NULL,&dwType,(LPBYTE)m_Cards[i].szDescription,&dwDataSize);
				::RegCloseKey(hNewKey);
				wsprintf(szNewKey,_T("System\\CurrentControlSet\\Services\\Class\\NetTrans\\%s"),lpszKeyName);
				lRet = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE,szNewKey,0,KEY_READ,&hNewKey);
				if(lRet == ERROR_SUCCESS)
				{
					dwDataSize = 256;
					::RegQueryValueEx(hNewKey,_T("DefaultGateway"),NULL,&dwType,(LPBYTE)m_Cards[i].szGateWay,&dwDataSize);
					ProcessMultiString(m_Cards[i].szGateWay,dwDataSize);
					dwDataSize = 256;
					::RegQueryValueEx(hNewKey,_T("IPAddress"),NULL,&dwType,(LPBYTE)m_Cards[i].szIpAddress,&dwDataSize);
					ProcessMultiString(m_Cards[i].szIpAddress,dwDataSize);
					dwDataSize = 256;
					::RegQueryValueEx(hNewKey,_T("IPMask"),NULL,&dwType,(LPBYTE)m_Cards[i].szIpMask,&dwDataSize);
					ProcessMultiString(m_Cards[i].szIpMask,dwDataSize);
//拷貝前面得到的DNS主機(jī)名
					_tcscpy(m_Cards[i].szDNSNameServer,szNameServer);
				}
				::RegCloseKey(hNewKey);
			}
			m_Cards[i].szMacAddr[0] = m_MacAddr[i].b1;
			m_Cards[i].szMacAddr[1] = m_MacAddr[i].b2;
			m_Cards[i].szMacAddr[2] = m_MacAddr[i].b3;
			m_Cards[i].szMacAddr[3] = m_MacAddr[i].b4;
			m_Cards[i].szMacAddr[4] = m_MacAddr[i].b5;
			m_Cards[i].szMacAddr[5] = m_MacAddr[i].b6;
		}
	}
	::RegCloseKey(hNetCard);
	return lRet == ERROR_SUCCESS ? TRUE : FALSE;
}

int ClassNetSetting::GetMacAddress(LPMAC_ADDRESS pMacAddr)
{
    NCB ncb; 
	UCHAR uRetCode;
	int num = 0;
	LANA_ENUM lana_enum; 
	memset(&ncb, 0, sizeof(ncb) ); 
	ncb.ncb_command = NCBENUM; 
	ncb.ncb_buffer = (unsigned char *)&lana_enum; 
	ncb.ncb_length = sizeof(lana_enum); 
	//向網(wǎng)卡發(fā)送NCBENUM命令,以獲取當(dāng)前機(jī)器的網(wǎng)卡信息,如有多少個(gè)網(wǎng)卡
	//每張網(wǎng)卡的編號(hào)等 
	uRetCode = Netbios(&ncb);
	if (uRetCode == 0) 
	{
		num = lana_enum.length;
//對(duì)每一張網(wǎng)卡,以其網(wǎng)卡編號(hào)為輸入編號(hào),獲取其MAC地址 
		for (int i = 0; i < num; i++)
		{
			ASTAT Adapter;
			if(GetAddressByIndex(lana_enum.lana[i],Adapter) == 0)
			{
				pMacAddr[i].b1 = Adapter.adapt.adapter_address[0];
				pMacAddr[i].b2 = Adapter.adapt.adapter_address[1];
				pMacAddr[i].b3 = Adapter.adapt.adapter_address[2];
				pMacAddr[i].b4 = Adapter.adapt.adapter_address[3];
				pMacAddr[i].b5 = Adapter.adapt.adapter_address[4];
				pMacAddr[i].b6 = Adapter.adapt.adapter_address[5];
			}
		}
	}
	return num;
}

BOOL ClassNetSetting::GetSettingOfWinNT()
{
   LONG lRtn;
	HKEY hMainKey;
	TCHAR szParameters[256];
//獲得域名,主機(jī)名和是否使用IP路由
	_tcscpy(szParameters,_T("SYSTEM\\ControlSet001\\Services\\Tcpip\\Parameters"));
	lRtn = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE,szParameters,0,KEY_READ,&hMainKey);
	if(lRtn == ERROR_SUCCESS)
	{
		DWORD dwType,dwDataSize = 256;
		::RegQueryValueEx(hMainKey,_T("Domain"),NULL,&dwType,(LPBYTE)m_szDomain,&dwDataSize);
		dwDataSize = 256;
		::RegQueryValueEx(hMainKey,_T("Hostname"),NULL,&dwType,(LPBYTE)m_szHostName,&dwDataSize);
		dwDataSize = 256;
//		BYTE szBuf[16];
		::RegQueryValueEx(hMainKey,_T("IPEnableRouter"),NULL,&dwType,(LPBYTE)&m_IPEnableRouter,&dwDataSize);
	}
	::RegCloseKey(hMainKey);

//獲得IP地址和DNS解析等其他設(shè)置
	HKEY hNetCard = NULL;
	m_TotalNetCards = GetMacAddress(m_MacAddr);

	lRtn = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\NetworkCards"),0,KEY_READ,&hNetCard);
	if(lRtn != ERROR_SUCCESS)//此處失敗就返回
	{
		if(hNetCard != NULL)
			::RegCloseKey(hNetCard);
		return FALSE;
	}
	
	DWORD dwSubKeyNum = 0,dwSubKeyLen = 256;
//得到子鍵的個(gè)數(shù),通常與網(wǎng)卡個(gè)數(shù)相等
	lRtn = ::RegQueryInfoKey(hNetCard,NULL,NULL,NULL,&dwSubKeyNum,&dwSubKeyLen,
		NULL,NULL,NULL,NULL,NULL,NULL);
	if(lRtn == ERROR_SUCCESS)
	{
		m_TotalNetCards = dwSubKeyNum;//網(wǎng)卡個(gè)數(shù)以此為主
		LPTSTR lpszKeyName = new TCHAR[dwSubKeyLen + 1];
		DWORD dwSize;
		for(int i = 0; i < (int)dwSubKeyNum; i++)
		{
			TCHAR szServiceName[256];
			HKEY hNewKey;
			DWORD dwType = REG_SZ,dwDataSize = 256;
			dwSize = dwSubKeyLen + 1;
			::RegEnumKeyEx(hNetCard,i,lpszKeyName,&dwSize,NULL,NULL,NULL,NULL);
			lRtn = ::RegOpenKeyEx(hNetCard,lpszKeyName,0,KEY_READ,&hNewKey);
			if(lRtn == ERROR_SUCCESS)
			{
				lRtn = ::RegQueryValueEx(hNewKey,_T("Description"),NULL,&dwType,(LPBYTE)m_Cards[i].szDescription,&dwDataSize);
				dwDataSize = 256;
				lRtn = ::RegQueryValueEx(hNewKey,_T("ServiceName"),NULL,&dwType,(LPBYTE)szServiceName,&dwDataSize);
				if(lRtn == ERROR_SUCCESS)
				{
					TCHAR szNewKey[256];
					wsprintf(szNewKey,_T("%s\\Interfaces\\%s"),szParameters,szServiceName);
					HKEY hTcpKey;
					lRtn = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE,szNewKey,0,KEY_READ,&hTcpKey);
					if(lRtn == ERROR_SUCCESS)
					{
						dwDataSize = 256;
						::RegQueryValueEx(hTcpKey,_T("DefaultGateway"),NULL,&dwType,(LPBYTE)m_Cards[i].szGateWay,&dwDataSize);
						ProcessMultiString(m_Cards[i].szGateWay,dwDataSize);
						dwDataSize = 256;
						::RegQueryValueEx(hTcpKey,_T("IPAddress"),NULL,&dwType,(LPBYTE)m_Cards[i].szIpAddress,&dwDataSize);
						ProcessMultiString(m_Cards[i].szIpAddress,dwDataSize);
						dwDataSize = 256;
						::RegQueryValueEx(hTcpKey,_T("SubnetMask"),NULL,&dwType,(LPBYTE)m_Cards[i].szIpMask,&dwDataSize);
						ProcessMultiString(m_Cards[i].szIpMask,dwDataSize);
						dwDataSize = 256;
						::RegQueryValueEx(hTcpKey,_T("NameServer"),NULL,&dwType,(LPBYTE)m_Cards[i].szDNSNameServer,&dwDataSize);
					}
					::RegCloseKey(hTcpKey);
				}
			}
			::RegCloseKey(hNewKey);
			m_Cards[i].szMacAddr[0] = m_MacAddr[i].b1;
			m_Cards[i].szMacAddr[1] = m_MacAddr[i].b2;
			m_Cards[i].szMacAddr[2] = m_MacAddr[i].b3;
			m_Cards[i].szMacAddr[3] = m_MacAddr[i].b4;
			m_Cards[i].szMacAddr[4] = m_MacAddr[i].b5;
			m_Cards[i].szMacAddr[5] = m_MacAddr[i].b6;
		}
		delete[] lpszKeyName;
	}
	::RegCloseKey(hNetCard);
	return lRtn == ERROR_SUCCESS ? TRUE : FALSE;
}


UCHAR ClassNetSetting::GetAddressByIndex(int lana_num, ASTAT &Adapter)
{
   NCB ncb; 
	UCHAR uRetCode; 
	memset(&ncb, 0, sizeof(ncb) ); 
	ncb.ncb_command = NCBRESET; 
	ncb.ncb_lana_num = lana_num; 
//指定網(wǎng)卡號(hào),首先對(duì)選定的網(wǎng)卡發(fā)送一個(gè)NCBRESET命令,以便進(jìn)行初始化 
	uRetCode = Netbios(&ncb ); 
	memset(&ncb, 0, sizeof(ncb) ); 
	ncb.ncb_command = NCBASTAT; 
	ncb.ncb_lana_num = lana_num;   //指定網(wǎng)卡號(hào) 
	strcpy((char *)ncb.ncb_callname,"*      " ); 
	ncb.ncb_buffer = (unsigned char *)&Adapter; 
//指定返回的信息存放的變量 
	ncb.ncb_length = sizeof(Adapter); 
//接著,可以發(fā)送NCBASTAT命令以獲取網(wǎng)卡的信息 
	uRetCode = Netbios(&ncb ); 
	return uRetCode;
} 

void ClassNetSetting::ProcessMultiString(LPTSTR lpszString, DWORD dwSize)
{ 
   for(int i = 0; i < int(dwSize - 2); i++)
	{
		if(lpszString[i] == _T('\0'))
			lpszString[i] = _T(',');
	}
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产清纯白嫩初高生在线观看91 | 一区二区国产视频| youjizz久久| 国产精品久久久久久久第一福利| 国产伦精品一区二区三区在线观看| 精品国产免费一区二区三区四区| 久久机这里只有精品| 久久久久久久久久久电影| 成人一区在线观看| 亚洲免费伊人电影| 色综合天天做天天爱| 亚洲v精品v日韩v欧美v专区| 日韩一区二区免费电影| 老司机精品视频导航| www久久久久| 北岛玲一区二区三区四区| 一区二区在线免费| 欧美一级淫片007| 国产一区二区三区不卡在线观看| 亚洲国产精品成人综合色在线婷婷 | 视频一区二区三区入口| 亚洲精品一线二线三线| 不卡一卡二卡三乱码免费网站| 亚洲丝袜精品丝袜在线| 欧美一区二区三区在线看| 国产精品一区一区三区| 一区二区在线观看免费视频播放 | 欧美一区二区国产| 成人精品小蝌蚪| 日韩和欧美一区二区| 欧美激情一区二区三区蜜桃视频| 欧美日韩一区中文字幕| 国产裸体歌舞团一区二区| 亚洲午夜私人影院| 国产欧美一区二区三区沐欲| 欧美在线你懂的| 国产91在线看| 日韩在线卡一卡二| 亚洲欧美一区二区三区极速播放| 91麻豆精品国产91久久久更新时间 | 99久久久免费精品国产一区二区| 日本强好片久久久久久aaa| 中文字幕一区二区三区精华液 | 亚洲欧美福利一区二区| 欧美电视剧在线看免费| 91国偷自产一区二区开放时间| 六月丁香婷婷色狠狠久久| 亚洲日本在线天堂| 国产丝袜在线精品| 精品久久久久久久人人人人传媒| 欧洲国内综合视频| www.日韩精品| 国产一区在线不卡| 日本va欧美va精品发布| 亚洲综合久久av| 亚洲图片激情小说| 久久婷婷色综合| 91麻豆精品国产自产在线 | 欧美日韩aaa| 色噜噜夜夜夜综合网| 成人网在线播放| 激情文学综合网| 日本麻豆一区二区三区视频| 亚洲一区在线播放| 一区二区三区在线视频观看58| 国产免费久久精品| 久久影音资源网| 精品久久人人做人人爰| 欧美tickling挠脚心丨vk| 91精品国产色综合久久| 777午夜精品免费视频| 欧美日韩mp4| 3d成人h动漫网站入口| 欧美日精品一区视频| 欧洲视频一区二区| 在线观看精品一区| 在线观看网站黄不卡| 色婷婷国产精品| 在线精品国精品国产尤物884a| 日本大香伊一区二区三区| 91小视频在线观看| 91丨国产丨九色丨pron| 日本精品视频一区二区三区| 91在线一区二区| 色综合久久综合网欧美综合网 | 欧美日韩一区二区三区在线 | 国产精品污网站| 国产精品区一区二区三| 国产精品你懂的在线欣赏| 国产精品色哟哟| 亚洲精品国产成人久久av盗摄| 一区二区激情视频| 婷婷中文字幕综合| 另类综合日韩欧美亚洲| 国产91对白在线观看九色| 99精品欧美一区| 欧美色视频在线观看| 91麻豆精品91久久久久久清纯 | 久久亚洲精品小早川怜子| 国产欧美视频一区二区| 亚洲色图丝袜美腿| 亚洲成va人在线观看| 麻豆精品国产传媒mv男同| 国产美女久久久久| 色婷婷综合五月| 日韩欧美三级在线| 国产精品久久精品日日| 性久久久久久久| 国产成人免费视频网站| 91久久国产综合久久| 欧美电影免费观看高清完整版| 国产精品欧美综合在线| 日日夜夜一区二区| 国产成人午夜片在线观看高清观看| av高清久久久| 91麻豆精品国产91久久久久久 | 91在线观看美女| 欧美一卡在线观看| 中文字幕一区二| 看片网站欧美日韩| 91香蕉视频污在线| 日韩欧美国产成人一区二区| 中文一区在线播放| 日韩高清电影一区| 91社区在线播放| 精品免费视频一区二区| 一区二区三区在线视频观看| 精品一区在线看| 在线视频国产一区| 国产精品视频线看| 免费日韩伦理电影| 91久久久免费一区二区| 国产欧美一区二区三区沐欲| 日韩在线卡一卡二| 色先锋久久av资源部| 久久久久久久久久久久久久久99| 天堂蜜桃一区二区三区| 91日韩一区二区三区| 久久久不卡影院| 蜜臀av在线播放一区二区三区| 色噜噜狠狠色综合欧洲selulu| 久久综合给合久久狠狠狠97色69| 午夜精品福利视频网站| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美成人性福生活免费看| 亚洲va天堂va国产va久| 91视视频在线直接观看在线看网页在线看 | 美国毛片一区二区| 欧美影视一区二区三区| 日本一区二区综合亚洲| 狠狠色综合播放一区二区| 91精品国产综合久久精品麻豆 | 最新欧美精品一区二区三区| 国产一区二区三区在线观看免费视频| 欧美日韩小视频| 亚洲综合网站在线观看| 99精品视频在线观看| 国产精品五月天| 成人激情动漫在线观看| 日本一区二区三区四区在线视频| 九九国产精品视频| 精品国产91亚洲一区二区三区婷婷| 日韩激情一二三区| 欧美另类高清zo欧美| 亚洲伊人伊色伊影伊综合网| 色悠久久久久综合欧美99| 亚洲天堂av老司机| 日本精品视频一区二区| 一区二区三区中文字幕精品精品| 99久久精品国产毛片| 国产精品免费观看视频| 成人avav影音| 亚洲欧美色图小说| 在线观看欧美黄色| 日韩专区一卡二卡| 日韩午夜在线影院| 狠狠色狠狠色合久久伊人| 国产午夜精品福利| av网站免费线看精品| 亚洲免费观看高清完整版在线观看| 色综合久久综合中文综合网| 亚洲一区二区综合| 337p亚洲精品色噜噜| 国产麻豆精品在线| 国产精品久久久久久妇女6080| 色欧美88888久久久久久影院| 亚洲丶国产丶欧美一区二区三区| 欧美日本在线观看| 极品美女销魂一区二区三区| 亚洲国产成人自拍| 91色乱码一区二区三区| 午夜精品久久一牛影视| 精品国产髙清在线看国产毛片| 国产成人小视频| 亚洲综合色成人| 精品国产亚洲在线| 99国产麻豆精品| 偷拍与自拍一区| 国产精品视频一二三区| 欧美麻豆精品久久久久久|