/*********************************************************************************************************
* file name: hw.c
* author : [email protected]
* data : 2024/06/04
* function : 设计程序实现解析www.baidu.com的域名,把获取到的百度的IP地址全部输出到终端并验证是否正确。
* note : None
*
*
* CopyRight (c) 2023-2024 All Right Reseverd
*
* ******************************************************************************************************/
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <errno.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/udp.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include <netdb.h>
#include <sys/socket.h>
int main()
{
// gethostbyname句柄类型为struct hostent *
struct hostent *myHW;
// 获取百度的ip地址
myHW = gethostbyname("www.baidu.com");
/*struct hostent *gethostbyname(const char *name);*/
if (myHW)
{
int i = 0; // ip地址的下标
// myHW->h_addr_list[i]循环直至NULL,退出循环
while (myHW->h_addr_list[i])
{
// 获取ip转化为网络字节序,网络字节序再转化为ip地址
struct in_addr *addr = (struct in_addr *)myHW->h_addr_list[i];
printf("baiduIP is : %s\n", inet_ntoa(*addr));
i++;
}
}
else
{
perror("Unable analysis domain name\n");
}
return 0;
}
编译运行