设计程序实现解析www.baidu.com 的域名,把获取到的百度的IP地址全部输出到终端并验证是否正确
/*************************************************************************************************************************** file name: udp_cs.c* author : Dazz* date : 2024/6/4* function : 设计程序实现解析www.baidu.com的域名,把获取到的百度的IP地址全部输出到终端并验证是否正确。*** CopyRight (c) 2024 Dazz_24@163.com All Right Reseverd** **************************************************************************************************************************/
#include <netdb.h>
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>int main(int argc, char *argv[])
{// 检查参数有效性if (argc != 2){fprintf(stderr, "argument is invaild ,errno:%d,%s\n", errno, strerror(errno));exit(1);}// 对域名进行解析struct hostent *p = gethostbyname(argv[1]);if (p == NULL){fprintf(stderr, " gethostbyname fail,errno:%d,%s\n", errno, strerror(errno));exit(2);}int cnt = 0;char **addr_list = p->h_addr_list;struct in_addr addr;// 遍历 IP 地址列表for (; *addr_list != NULL; addr_list++){memcpy(&addr, *addr_list, sizeof(struct in_addr));// 使用 inet_ntoa 输出 IP 地址printf("%s\n", inet_ntoa(addr));cnt++;}return 0;
}
运行结果: