c语言实现域名解析
(2010-12-12 15:48:24)
标签:
杂谈 |
c语言实现域名解析
#include
<stdio.h>
#include
<Winsock2.h>
#include
<windows.h>
typedef struct _DNSHEAD{
//dns
头部
USHORT
ID;
USHORT tag; // dns
标志(参数)
USHORT
numQ;
// 问题数
USHORT
numA;
// 答案数
USHORT
numA1;
//
权威答案数
USHORT
numA2;
//
附加答案数
}DnsHead;
typedef struct _DNSQUERY
//dns
查询结构
{
//
char
name[64];
//
//查询的域名,这是一个大小在0到63之间的字符串;
USHORT
type;
//查询类型,大约有20个不同的类型
USHORT
classes;
//查询类,通常是A类既查询IP地址。
}DnsQuery;
#pragma comment(lib,"ws2_32.lib")
// 初始化操作
bool initWSA();
//显示错误
void displayErrWSA(char *str);
//创建套接字
SOCKET CreateSocket(int type);
//UDP sendto
int MySendto(SOCKET sockTo, const char FAR * buf,int len,char *addr,USHORT port);
//TCP 连接
bool MyConnect(SOCKET s, char *addr,USHORT );
// UDP recvfrom
int MyRecvFrom(SOCKET s, char FAR * buf,int len,char *addr,USHORT port);
//设置DNS 头部
bool SetDNSHead(char *name,char *buf);
int main(int arg,char *are[])
{
#include
#include
#include
typedef struct _DNSHEAD{
}DnsHead;
typedef struct _DNSQUERY
{
//
//
}DnsQuery;
#pragma comment(lib,"ws2_32.lib")
// 初始化操作
bool initWSA();
//显示错误
void displayErrWSA(char *str);
//创建套接字
SOCKET CreateSocket(int type);
//UDP sendto
int MySendto(SOCKET sockTo, const char FAR * buf,int len,char *addr,USHORT port);
//TCP 连接
bool MyConnect(SOCKET s, char *addr,USHORT );
// UDP recvfrom
int MyRecvFrom(SOCKET s, char FAR * buf,int len,char *addr,USHORT port);
//设置DNS 头部
bool SetDNSHead(char *name,char *buf);
int main(int arg,char *are[])
{

加载中…