设计程序实现解析www.baidu.com 的域名,把获取到的百度的IP地址全部输出到终端并验证是否正确
/*************************************************************************************************************************
*
* file name: udp_cs.c
* author : Dazz
* date : 2024/6/4
* function : 设计程序实现解析www.baidu.com的域名,把获取到的百度的IP地址全部输出到终端并验证是否正确。
*
*
* CopyRight (c) 2024 [email protected] 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;
}
运行结果: