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