gethostbyname函数
生活随笔
收集整理的這篇文章主要介紹了
gethostbyname函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ? ? ? gethostbyname()返回對應于給定主機名的包含主機名字和地址信息的hostent結構的指針,它是協議相關的,只能用于IPv4。getaddrinfo也有類似功能,但是它是協議相關的,先看看hostent結構體。
struct hostent {char *h_name; //主機名char **h_aliases; //主機別名(指向到虛擬主機的域名)int h_addrtype; //主機IP地址類型int h_length; //主機IP地址長度,對于IPv4是四字節char **h_addr_list; //主機IP地址列表 };#define h_addr h_addr_list[0]實踐代碼: #include <stdio.h> #include <netdb.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h>//頭文件沒有包含全可能會莫名的core dumpint main() {char szWeb[]="www.baidu.com";struct hostent *pHost=gethostbyname(szWeb);//完成主機名到域名的解析 char *IP=inet_ntoa(*((struct in_addr *)pHost->h_addr));printf("ip=%s\n",IP);char *IP1=inet_ntoa(*((struct in_addr *)pHost->h_addr_list[1]));printf("IP1=%s\n",IP1);char *name=pHost->h_name;printf("name=%s\n",name);char *aliases=pHost->h_aliases[0];printf("aliases=%s\n",aliases);int type=pHost->h_addrtype;printf("type=%d\n",type);int length=pHost->h_length;printf("length=%d\n",length);return 0; }
編譯運行:
ip=14.215.177.38
IP1=14.215.177.39
name=www.baidu.com
aliases=(null)
type=2
length=4
總結
以上是生活随笔為你收集整理的gethostbyname函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: setbuf()关闭缓冲
- 下一篇: accept函数与TCP三次握手