#include
#include
#include
#include
#include
#include
#include
#include
int main(int argc,char *argv[])
{
char *ptr,**pptr;
struct hostent *hptr;
struct in_addr hpaddr;
//使用argv[1]作為參數(shù)
ptr = argv[1];
//調用gethostbyname函數(shù),將結果存放到hptr中
if((hptr = gethostbyname(ptr))== NULL) //如果調用函數(shù)失敗
{
printf("解析域名%s失敗.\n",ptr);
return 0;
}
printf("目標的官方域名是%s\n",hptr->h_name);
//由于目標可能有多個別名,所以統(tǒng)統(tǒng)打印
for(pptr = hptr->h_aliases;*pptr != NULL;pptr++)
{
printf("目標的別名是%s\n",*pptr);
}
//根據(jù)地址類型輸出地址
switch(hptr->h_addrtype)
{
case AF_INET:
case AF_INET6: //針對IPV4和IPV6均進行如下操作,因為之前沒有break
{
pptr = hptr -> h_addr_list;
for(;*pptr != NULL;pptr++)
{
memcpy(&hpaddr,pptr,4);
printf("目標地址是:%s\n",inet_ntoa(hpaddr));
}
}
break;
default:
printf("未知的地址類型\n");
}
return 0;
}
新聞標題:[Linux網(wǎng)絡編程]域名轉換函數(shù)族--使用gethostbyname函數(shù)2
分享網(wǎng)址:
http://weahome.cn/article/peogjh.html