#include <stdio.h>
#include <stdlib.h>
#include <netdb.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main(int argc,char *argv[])
{
struct hostent *qnew_hp;
struct in_addr qnew_in;
struct sockaddr_in qnew_localaddr;
if(argc <2) return;
if(!(qnew_hp=gethostbyname(argv[1])))
{
fprintf(stderr,"Can't resolve host./n");
exit(1);
}
memcpy(&qnew_localaddr.sin_addr.s_addr, qnew_hp->h_addr, 4);
qnew_in.s_addr = qnew_localaddr.sin_addr.s_addr;
printf("Domain Name: %s/n",qnew_hp->h_name);
printf("Ip Addres : %s/n",inet_ntoa(qnew_in));
}
/*
编译方法:cc -o test test.c
使用方法: ./test www.163.com
struct hostent
{
char *h_name; 主机名
char **h_aliases; 指向主机的其他别名
int h_addrtype; 地址状态,通常是AF_INET
int h_length; 地址长度
char **h_addr_list; 从域名服务器取得该主机的全部地址
}
*/