找回密码
 立即注册
首页 业界区 安全 把获取到的百度的IP地址全部输出到终端并验证是否正确 ...

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

皇甫佳文 2025-6-8 12:20:31
目录

  • 题目
  • 分析
  • 代码
  • 结果

题目

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

1.通过目标域名获取目标IP地址对应的网络字节序(需强转为对应的类型),使用gethostbyname()函数;
2.把获取的网络字节序转换为点分十进制的IP地址(需强转为对应的类型),以便查询。
代码
  1. /*********************************************************************************** * *        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[i] != NULL) { //4. 获取IP地址对应的网络字节序 ip = *(uint32_t*)hostent->h_addr_list[i]; //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.png

2.png


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册