https网络编程——DNS域名解析获取IP地址
Posted 行稳方能走远
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了https网络编程——DNS域名解析获取IP地址相关的知识,希望对你有一定的参考价值。
参考:DNS域名解析
地址:https://qingmu.blog.csdn.net/article/details/115825036?spm=1001.2014.3001.5502
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: %s\\n", hptr->h_name);
for (pptr=hptr->h_aliases; *pptr!= NULL; pptr++)
printf ("\\talias: %s\\n", *pptr);
switch (hptr->h_addrtype)
case AF_INET:
pptr = hptr->h_addr_list;
for ( ; *pptr != NULL; pptr++)
printf ("\\taddress: %s\\n",inet_ntop (hptr->h_addrtype, *pptr, str, sizeof (str))); //hptr->h_addrtype我们获取的IP地址
break;
default:
printf("unknown address type");
break;
exit(0);
3、测试
以上是关于https网络编程——DNS域名解析获取IP地址的主要内容,如果未能解决你的问题,请参考以下文章
DNS域名解析中A、AAAA、CNAME、MX、NS、TXT、SRV、SOA、PTR各项记录的作用
编程黑科技gethostbyname()函数:通过域名获取IP地址!