您好,登錄后才能下訂單哦!
#include <netdb.h> #include <sys/socket.h> #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <string.h> #include <arpa/inet.h> #include <netinet/in.h> int main(int argc,char *argv[]) { char *ptr,**pptr; struct hostent *hptr; struct in_addr hpaddr; //使用argv[1]作為參數 ptr = argv[1]; //調用gethostbyname函數,將結果存放到hptr中 if((hptr = gethostbyname(ptr))== NULL) //如果調用函數失敗 { printf("解析域名%s失敗.\n",ptr); return 0; } printf("目標的官方域名是%s\n",hptr->h_name); //由于目標可能有多個別名,所以統統打印 for(pptr = hptr->h_aliases;*pptr != NULL;pptr++) { printf("目標的別名是%s\n",*pptr); } //根據地址類型輸出地址 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; }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。