把获取到的百度的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]