皇甫佳文 发表于 2025-6-8 12:20:31

把获取到的百度的IP地址全部输出到终端并验证是否正确

目录

[*]题目
[*]分析
[*]代码
[*]结果

题目

设计程序实现解析www.baidu.com的域名,把获取到的百度的IP地址全部输出到终端并验证是否正确。
分析

1.通过目标域名获取目标IP地址对应的网络字节序(需强转为对应的类型),使用gethostbyname()函数;
2.把获取的网络字节序转换为点分十进制的IP地址(需强转为对应的类型),以便查询。
代码

/*********************************************************************************** * *        file name:        udp_ntoh.c *        author : cnzycwp@126.com *        date : 2024/06/04 *        function : 该案例是实现解析www.baidu.com的域名,把获取到的百度的IP地址全部输出到 * 终端并验证是否正确 * note : None * version : * *        CopyRight (c) 2023-2024 cnzycwp@126.com All Right Reseverd * * **********************************************************************************/ /************************************头文件*****************************************/ #include#include#include #include#include#include /***********************************************************************************/ int main() { int i = 0; //定义一个变量,表示IP地址下标 uint32_t ip; char *host_ip; //1. 获取服务器的IP地址 struct hostent *hostent = gethostbyname("www.baidu.com"); //2.定义结构体获取IP地址 struct in_addr ip_addr; //3.当结构题hosten->h_addr_list为空时,退出循环 while (hostent->h_addr_list != NULL) { //4. 获取IP地址对应的网络字节序 ip = *(uint32_t*)hostent->h_addr_list; //5. 网络字节序转换为点分十进制IP地址 char *inet_ntoa(struct in_addr in); ip_addr = *(struct in_addr*)&ip; host_ip = inet_ntoa(ip_addr); //6. 打印结果 printf("IP: %s\n", host_ip); i++; } return 0; }
结果




来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 把获取到的百度的IP地址全部输出到终端并验证是否正确