域名解析
1、相关函数
//创建一个结构体存放相应信息
struct hostent *gethostbyname(const char *name);
//销毁创建的结构体
void endhostent(void);
//结构体内容
struct hostent {
char* h_name; //官网域名
char** h_aliases; //别名
int h_addrtype; //地址族(地址类型)
int h_length; //地址长度
char** h_addr_list; //地址列表
}
#define h_addr h_addr_list[0]
h_aliases:主机的备用名称数组,以NULL结尾
h_addrtype:AF_INET或AF_INET6
h_length:单位字节。AF_INET时为4,AF_INET6时为16
2、实验代码
代码具体实现如下:
#include <stdio.h>
#include <stdlib.h>
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main(int argc,char** argv){
if(argc != 2){
printf("%s <host name>\n",argv[0]);
exit(0);
}
printf("host name = %s\n",argv[1]);