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

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

?? dns.h

?? a dsp dll and sample
?? H
字號(hào):
#ifndef DNS_QUERY_PORT
	#include "StdAfx.h"

	#define DNS_QUERY_PORT		53				//DNS服務(wù)器的監(jiān)聽(tīng)端口
	#define DNSPACKET_BUFFSIZE	512				//DNSPACKET數(shù)據(jù)緩沖區(qū)的尺寸
	#define DNS_SRV_ADDR		"202.96.128.68"	//DNS服務(wù)器的IP地址

	
class DNS
{
private:
	DNS(){};
public:
	enum _DNSCLASS
	{
		classIN = 1,
		classCS,
		classCH,
		classHS,
		classANY=255
	};

	enum _DNSTYPE
	{
		//定義DNS類型
		typeA = 1,
		typeNS,
		typeMD,
		typeMF,
		typeCNAME,
		typeSOA,
		typeMB,
		typeMG,
		typeMR,
		typeNULL,
		typeWKS,
		typePTR,
		typeHINFO,
		typeMINFO,
		typeMX,
		typeTXT,
		typeAXFR = 252,
		typeMAILB,
		typeMAILA,
		typeAll
	};

	struct _DNSHEADER
	{
		//DNS頭
		USHORT	id;
		
		USHORT	RD		: 1;
		USHORT	TC		: 1;
		USHORT	AA		: 1;
		USHORT	Opcode	: 4;
		USHORT	QR		: 1;
		
		USHORT	RCODE	: 4;
		USHORT	Z		: 3;
		USHORT	RA		: 1;
		
		USHORT	QDCOUNT;		//Count of Queryes
		USHORT	ANCOUNT;		//Count of Answers
		USHORT	NSCOUNT;		//Count of NameServer
		USHORT	ARCOUNT;		//Count of Address Records(A記錄)
	public:
		_DNSHEADER()
		{
			memset(this, 0, sizeof(this));
		}
		inline void Normalize()
		{
			//從字節(jié)序轉(zhuǎn)變成網(wǎng)絡(luò)序或逆轉(zhuǎn)
			QDCOUNT = htons(QDCOUNT);
			ANCOUNT = htons(ANCOUNT);
			NSCOUNT = htons(NSCOUNT);
			ARCOUNT = htons(ARCOUNT);
		}
	};

	struct _DNSRR;
	struct _DNSQUESTION;
	
	struct _MXRECORD
	{
		char			*lpSrvName;
		char			*lpSrvAddr;
		int				nSrvNameLen;
		int				nSrvAddrLen;
		unsigned long	ip;

		_MXRECORD():lpSrvName(NULL),lpSrvAddr(NULL){};
		~_MXRECORD()
		{
			Empty();
		};
		
		inline void Empty()
		{
			if(lpSrvName!=NULL)
			{	
				::free(lpSrvName);
				lpSrvName	=NULL;
			}
			if(lpSrvAddr!=NULL)
			{
				::free(lpSrvAddr);
				lpSrvAddr	=NULL;
			}
		};
		inline bool Fill(_DNSRR& dr);
	};

	struct _DNSPACKET
	{
		//DNS包
	public:
		_DNSHEADER	Header;
	private:
		char		pvtData[DNSPACKET_BUFFSIZE-sizeof(_DNSHEADER)];
		char		mxName[DNSPACKET_BUFFSIZE-sizeof(_DNSHEADER)];
		USHORT		mxNameLen;
		
		inline bool	IsInMXName(const char* const lpSrv);
	public:
		USHORT Offset;
		
		_DNSPACKET()		{Header.id	= 0;Empty();};
		inline	void	Normalize()	{Header.Normalize();}
		inline	int		Empty();

		inline	bool	QueryDNSServer(SOCKET sock,char* const lpHost,const struct sockaddr_in FAR * lphDnsSrv,_DNSTYPE type=typeAll,_DNSCLASS dnsClass=classIN);
		inline	bool	WaitRecvFromDNSServer(SOCKET sock,struct sockaddr_in FAR* from,int nSeconds=2);
		inline	bool	GetDNSQuestion(_DNSQUESTION& dq);
		inline	bool	GetDNSRR(_DNSRR& dr);
		inline	bool	GetMXHostSet(char* const lpSrvName,char* const lpDnsSrv=DNS_SRV_ADDR,int nCount=5);
		inline	bool	GetMX(_MXRECORD& mr);
		inline	struct hostent FAR * GetMXHost();

		//重載操作符BYTE*()
		inline operator BYTE*()			{return (BYTE*)this;};
		inline USHORT	GetSize()const	{return DNSPACKET_BUFFSIZE;};
	};

	struct _QNAME
	{
		//DNS字符串結(jié)構(gòu),保存名字
		char	Data[DNSPACKET_BUFFSIZE];
	public:
		USHORT		Offset;
		
		inline	void Empty()
		{
			memset(Data, 0, sizeof(Data));
			Offset = 0;
		}
		
		_QNAME()	{Empty();	};
		inline	USHORT GetSize()const {return Offset+1;	};
		
		inline	int		Add(LPCSTR str);
		inline	char*	Get(int& nLen);
		inline	bool	Add(_DNSPACKET& dns, USHORT& nOffset);
		inline	bool	Fill(_DNSPACKET& dns, USHORT& nOffset);
	};
	
	struct _DNSA
	{
		//DNS地址
		long	addr;

		_DNSA()
		{
			addr = 0;
		}
		inline	void _DNSA::Normalize()
		{
			//將地址由字節(jié)序轉(zhuǎn)換為網(wǎng)絡(luò)序
			addr = htonl(addr);
		}
		
		inline	bool	Add(_DNSPACKET& dns, USHORT& nOffset);
		inline	bool	Fill(_DNSPACKET& dns, USHORT& nOffset);
	};
	
	struct _DNSNS
	{
		//DNS服務(wù)器的名字
		_QNAME	Server;
		
	public:
		inline void Empty()
		{
			Server.Empty();
		}
		
		_DNSNS()
		{
			Empty();
		}
		
		inline bool Fill(_DNSPACKET& dns, USHORT& nOffset)
		{
			return Server.Fill(dns, nOffset);
		}
		
		inline bool Add(_DNSPACKET& dns, USHORT& nOffset)
		{
			return Server.Add(dns, nOffset);
		}
	};
	
	struct _DNSMX
	{
		//MX記錄
		USHORT	Reference;
		_QNAME	Exchange;
		
	public:
		_DNSMX()
		{
			Empty();
		}
		inline	void Empty()
		{
			Reference = 0;
			Exchange.Empty();
		}
		inline	void Normalize()
		{
			//轉(zhuǎn)變字節(jié)序?yàn)榫W(wǎng)絡(luò)序
			Reference	= htons(Reference);
		}
		
		inline	bool	Fill(_DNSPACKET& dns, USHORT& nOffset);
		inline	bool	Add(_DNSPACKET& dns, USHORT& nOffset);
	};
	
	struct _DNSSOA
	{
		_QNAME	mName;
		_QNAME	rName;
		long	Serial;
		long	Refresh;
		long	Retry;
		long	Expire;
		long	Minimum;
		
	public:
		_DNSSOA()
		{
			Empty();
		}
		inline	void Empty()
		{
			mName.Empty();
			rName.Empty();
			memset(&Serial, 0, 5*4);
		}
		inline	void Normalize()
		{
			Serial	= htonl(Serial);
			Refresh = htonl(Refresh);
			Retry	= htonl(Retry);
			Expire	= htonl(Expire);
			Minimum	= htonl(Minimum);
		}
		
		inline	bool	Fill(_DNSPACKET& dns, USHORT& nOffset);
		inline	bool	Add(_DNSPACKET& dns, USHORT& nOffset);
	};
	
	struct _DNSQUESTION
	{
	public:
		_QNAME		qName;
		_DNSTYPE	Type;
		_DNSCLASS	Class;
	public:
		_DNSQUESTION()
		{
			Empty();
		}
		inline	void Empty()
		{
			qName.Empty();
			Type	= typeAll;
			Class	= classANY;
		}
		inline	void _DNSQUESTION::Normalize()
		{
			Type  = (_DNSTYPE)htons(Type);
			Class = (_DNSCLASS)htons(Class);
		}
		
		inline	bool	Add(_DNSPACKET& dns, USHORT& nOffset);
		inline	bool	Fill(_DNSPACKET& dns, USHORT& nOffset);
		inline	USHORT	GetSize()const{return qName.GetSize() + 4;};
	};
	
	struct _DNSRR
	{
		_DNSQUESTION	q;
		long			ttl;
		USHORT			rDataLen;
		BYTE*			rData;
	public:
		_DNSPACKET*		pDns;
		USHORT			Offset;
	public:
		_DNSRR(_DNSPACKET& rDns)
		{
			pDns		= &rDns;
			rData		= NULL;
			Empty();
		}
		~_DNSRR()
		{
			Empty();
		}
		inline	void Normalize()
		{
			q.Normalize();
			ttl		= htonl(ttl);
			rDataLen= htons(rDataLen);
		}
		
		inline	void	Empty();
		inline	bool	Add(_DNSPACKET& dns, USHORT& nOffset);
		inline	bool	Fill(_DNSPACKET& dns, USHORT& nOffset);
		inline	bool	GetDNSRecord(_DNSSOA& ds);
		inline	bool	GetDNSRecord(_DNSNS& dn);
		inline	bool	GetDNSRecord(_DNSMX& dm);
		inline	bool	GetDNSRecord(_DNSA& da);

		inline USHORT	GetSize()const{return rDataLen;};
	};

	static SOCKET CreateDNSSocket(char *lpDnsSrv,struct sockaddr_in& hDnsSrv);
};

#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费观看一级特黄欧美大片| 欧美剧情电影在线观看完整版免费励志电影| 欧美在线不卡一区| 久久久久国产精品麻豆ai换脸 | 蜜芽一区二区三区| 欧美日韩视频专区在线播放| 国产精品嫩草99a| 国产91丝袜在线18| 国产精品久久久久久久久久免费看 | av网站一区二区三区| 综合分类小说区另类春色亚洲小说欧美 | 亚洲色图欧美偷拍| 91女神在线视频| 亚洲一区二区三区四区在线观看| 91丨porny丨国产入口| 一区二区三区精品在线| 91原创在线视频| 亚洲在线中文字幕| 884aa四虎影成人精品一区| 麻豆国产精品官网| 国产亚洲欧美色| 91国偷自产一区二区三区成为亚洲经典 | 久久99精品久久久久婷婷| 亚洲精品在线三区| 波多野结衣一区二区三区| 成人免费在线观看入口| 欧美一区二区在线播放| 国产成人啪午夜精品网站男同| 中文字幕视频一区| 91精品午夜视频| 99国产精品国产精品毛片| 日韩伦理免费电影| 日韩欧美在线影院| 不卡的看片网站| 免费观看在线综合| 一区二区视频在线看| 欧美成人女星排行榜| 一本色道久久综合亚洲精品按摩| 亚洲观看高清完整版在线观看| 久久午夜羞羞影院免费观看| 欧美日韩一区二区三区高清| 国产高清亚洲一区| 精品一区二区三区日韩| 亚洲午夜精品久久久久久久久| 精品99一区二区三区| 欧美精品tushy高清| 欧美怡红院视频| 一本一本久久a久久精品综合麻豆| 国产成人啪免费观看软件| 日韩精品乱码免费| 丝袜美腿亚洲一区二区图片| 一区二区三区在线免费视频| 国产精品久久久爽爽爽麻豆色哟哟| 久久久影院官网| 精品日韩成人av| 欧美成人福利视频| 日韩欧美在线影院| 日韩视频在线一区二区| 91精品久久久久久久99蜜桃| 欧美一区三区二区| 日韩欧美电影一二三| 欧美精品一区二区三区在线播放| 欧美精品一区二区精品网| 26uuu国产在线精品一区二区| 国产欧美一区视频| 欧美一区二区视频观看视频| 美女网站一区二区| 玖玖九九国产精品| 国产一区久久久| 激情综合亚洲精品| 成人美女视频在线看| 成人午夜视频网站| 色综合欧美在线| 日韩亚洲欧美中文三级| 欧美精品一区二区三区四区| 中文字幕欧美日本乱码一线二线| 中文字幕中文字幕在线一区| 一区二区三区欧美视频| 国产一区二区91| 色吧成人激情小说| 欧美精品一区二区三区高清aⅴ| 国产欧美日本一区视频| 亚洲一区中文在线| 国产成人在线网站| 欧美体内she精高潮| 国产午夜一区二区三区| 天天色图综合网| 91在线码无精品| 精品999在线播放| 亚洲成人在线免费| av激情亚洲男人天堂| 日韩亚洲欧美成人一区| 亚洲成人av在线电影| 成人性生交大合| 久久这里只精品最新地址| 亚洲成av人综合在线观看| 99久久er热在这里只有精品15| 久久综合九色综合欧美亚洲| 日韩av中文字幕一区二区三区| 色狠狠桃花综合| 亚洲精品视频免费观看| 99久久精品久久久久久清纯| 国产精品区一区二区三区| 国产一区二区三区四| 日本一区二区三区四区在线视频| 美腿丝袜亚洲一区| 久久综合久色欧美综合狠狠| 国产高清一区日本| 亚洲免费在线观看| 欧美日韩三级一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎| 91精品欧美一区二区三区综合在| 亚洲午夜在线观看视频在线| 欧美高清激情brazzers| 国内久久精品视频| 国产精品拍天天在线| 在线免费不卡电影| 日本sm残虐另类| 久久久午夜精品| 欧美三日本三级三级在线播放| 五月天亚洲婷婷| 国产精品国产三级国产aⅴ原创 | av网站一区二区三区| 午夜欧美在线一二页| 久久免费的精品国产v∧| 成人亚洲精品久久久久软件| 亚洲综合久久av| 久久久三级国产网站| 在线免费观看日本一区| 国产乱码精品一区二区三| 中文字幕一区二区三区色视频| 91精品国产入口在线| 91小视频免费观看| 精品一区二区在线免费观看| 亚洲精品自拍动漫在线| ●精品国产综合乱码久久久久 | 中文字幕一区二区三区在线不卡| 日本亚洲天堂网| 日韩午夜在线影院| 美日韩一区二区| 中文字幕国产一区| 在线观看日韩高清av| 成人小视频免费在线观看| 一区二区三区日韩欧美精品| 久久精品视频一区二区三区| 欧美精品九九99久久| 色婷婷综合在线| 成人a区在线观看| 国产成人小视频| 国产一区啦啦啦在线观看| 久久69国产一区二区蜜臀| 日韩精品免费视频人成| 五月婷婷久久综合| 日本vs亚洲vs韩国一区三区二区| 有坂深雪av一区二区精品| 1区2区3区国产精品| 欧洲视频一区二区| 色悠久久久久综合欧美99| aaa亚洲精品| 欧美嫩在线观看| 欧美mv和日韩mv的网站| 国产欧美日韩卡一| 亚洲人一二三区| 日韩有码一区二区三区| 蜜桃精品视频在线| 国产又黄又大久久| 欧美亚日韩国产aⅴ精品中极品| 欧美日韩综合不卡| 26uuu精品一区二区在线观看| 久久久91精品国产一区二区精品| 国产精品无人区| 午夜私人影院久久久久| 麻豆国产精品视频| 91九色最新地址| 国产午夜精品在线观看| 亚洲国产日韩一区二区| 狠狠色狠狠色综合| 欧美制服丝袜第一页| 日韩视频123| 亚洲一区二区三区视频在线| 美女网站色91| 欧洲中文字幕精品| 日本一区二区视频在线观看| 午夜精品久久久久久久99水蜜桃 | 精品国产免费视频| 性做久久久久久| 一本久久a久久免费精品不卡| 久久综合久久久久88| 日韩专区欧美专区| 欧洲在线/亚洲| 亚洲一级二级三级在线免费观看| 国产乱人伦精品一区二区在线观看| 色婷婷亚洲一区二区三区| 国产精品久久久久久妇女6080 | 成人av网在线| 久久这里只精品最新地址| 男男gaygay亚洲| 91精品蜜臀在线一区尤物| 午夜影院在线观看欧美| 一本大道久久a久久综合婷婷|