参考:DNS域名解析
地址:https://qingmu./article/details/115825036?spm=1001..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地址》对你有帮助,请点赞、收藏,并留下你的观点哦!