用c语言编写DNS客户端程序

用c语言编写DNS客户端程序,c,linux,sockets,dns,C,Linux,Sockets,Dns,我有一个家庭作业,我必须制作一个DNS客户端,它通过一个套接字连接到DNS服务器。DNS服务器已经生成,因此我的工作是创建DNS客户端。客户端应向服务器发送域名,服务器应使用该域名的等效IP地址进行响应。因此,我想知道将在编码DNS客户端时使用的基本步骤 另外,在互联网上,我发现了一个名为“DNS查询程序”的程序。什么是DNS查询程序?我在下面附加了一个链接,它将引导您访问该查询程序。这个程序对我制作DNS客户端有用吗? 提前感谢。从您所描述的内容来看,您所要做的似乎就是编写普通的tcp(或u

我有一个家庭作业,我必须制作一个DNS客户端,它通过一个套接字连接到DNS服务器。DNS服务器已经生成,因此我的工作是创建DNS客户端。客户端应向服务器发送域名,服务器应使用该域名的等效IP地址进行响应。因此,我想知道将在编码DNS客户端时使用的基本步骤

另外,在互联网上,我发现了一个名为“DNS查询程序”的程序。什么是DNS查询程序?我在下面附加了一个链接,它将引导您访问该查询程序。这个程序对我制作DNS客户端有用吗?


提前感谢。

从您所描述的内容来看,您所要做的似乎就是编写普通的tcp(或udp)客户端,并使用它向服务器发送特定消息并读取消息。为此,您必须开始阅读一些linux网络教程,我建议您阅读W.Richard Stevens的“UNIX网络编程”。简而言之,您必须在中填写
struct sockaddr\u,调用
socket()
connect()
,以及
写入/读取
关闭()。这里是一个例子,带有大写字母的函数只是相应的小写标准例程的包装

int main(int argc, char** argv) {

    int         sockfd;
    struct sockaddr_in  servaddr;

    if ( argc != 2)
        err_quit("usage: tcpcli <IPaddress>");

    sockfd = Socket(AF_INET, SOCK_STREAM, 0);

    bzero(&servaddr, sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons( SERV_PORT);
    Inet_pton(AF_INET, argv[1], &servaddr.sin_addr);

    Connect(sockfd, (SA *) &servaddr, sizeof(servaddr));

    str_cli( stdin, sockfd);        /* do it all: write/read from socket */

    close( sockfd);

    exit(0);
}
int main(int argc,char**argv){
int-sockfd;
servaddr中的结构sockaddr_;
如果(argc!=2)
err_quit(“用法:tcpcli”);
sockfd=套接字(AF_INET,SOCK_STREAM,0);
bzero(&servaddr,sizeof(servaddr));
servaddr.sin_family=AF_INET;
servaddr.sin_port=htons(SERV_port);
Inet\u pton(AF\u Inet,argv[1],&servaddr.sin\u addr);
连接(sockfd,(SA*)和servaddr,sizeof(servaddr));
str_cli(stdin,sockfd);/*全部完成:从套接字写入/读取*/
关闭(sockfd);
出口(0);
}

好吧,在谷歌搜索“DNS协议”之后,你有没有想到过什么设计?