概述
Linux中通过域名获取IP的方式
- 1、原理
- 2、代码实现
- 3、测试
1、原理
我在在通过域名解析获取IP的过程中一般使用的是DNS域名解析。
DNS协议是一种应用层协议,他是基于UDP来实现的。
2、代码实现
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
extern int h_errno;
int main(int argc, char **argv)
{
char *ptr, **pptr;
char str[INET_ADDRSTRLEN];
struct hostent *hptr; //
while (--argc> 0)
{
ptr = *++argv; //传入的域名
if ( (hptr = gethostbyname (ptr) ) == NULL) //完成域名解析
{
printf("gethostbyname error for host: %s: %s",ptr, hstrerror (h_errno) );
continue;
}
printf ("official hostname: %sn", hptr->h_name);
for (pptr=hptr->h_aliases; *pptr!= NULL; pptr++)
printf ("talias: %sn", *pptr);
switch (hptr->h_addrtype)
{
case AF_INET:
pptr = hptr->h_addr_list;
for ( ; *pptr != NULL; pptr++)
printf ("taddress: %sn",inet_ntop (hptr->h_addrtype, *pptr, str, sizeof (str))); //hptr->h_addrtype我们获取的IP地址
break;
default:
printf("unknown address type");
break;
}
}
exit(0);
}
3、测试
最后
以上就是调皮戒指为你收集整理的DNS域名解析1、原理2、代码实现3、测试的全部内容,希望文章能够帮你解决DNS域名解析1、原理2、代码实现3、测试所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复