gethostbyname 函式說明

2021-06-21 13:44:55 字數 923 閱讀 1596

gethostbyname()函式說明——用網域名稱或主機名獲取ip位址

包含標頭檔案

#include

#include

函式原型

struct hostent *gethostbyname(const char *name);

這個函式的傳入值是網域名稱或者主機名,例如"www.google.cn"等等。傳出值,是乙個hostent的結構。如果函式呼叫失敗,將返回null。

返回hostent結構體型別指標

struct hostent

;hostent->h_name

表示的是主機的規範名。例如www.google.com的規範名其實是www.l.google.com。

hostent->h_aliases

表示的是主機的別名.www.google.com就是google他自己的別名。有的時候,有的主機可能有好幾個別名,這些,其實都是為了易於使用者記憶而為自己的**多取的名字。

hostent->h_addrtype    

表示的是主機ip位址的型別,到底是ipv4(af_inet),還是pv6(af_inet6)

hostent->h_length      

表示的是主機ip位址的長度

hostent->h_addr_lisst

表示的是主機的ip位址,注意,這個是以網路位元組序儲存的。千萬不要直接用printf帶%s引數來打這個東西,會有問題的哇。所以到真正需要列印出這個ip的話,需要呼叫inet_ntop()。

const char *inet_ntop(int af, const void *src, char *dst, socklen_t cnt) :

這個函式,是將型別為af的網路位址結構src,轉換成主機序的字串形式,存放在長度為cnt的字串中。返回指向dst的乙個指標。如果函式呼叫錯誤,返回值是null。

gethostbyname 簡明用法

使用這個東西,首先要包含2個頭檔案 這個函式的傳入值是網域名稱或者主機名,例如 www.google.com wpc 等等。傳出值,是乙個hostent的結構 如下 如果函式呼叫失敗,將返回null。解釋一下這個結構,其中 char h name 表示的是主機的規範名。例如www.google.co...

linux下gethostbyname工作原理

既然這兩個函式能夠轉換 ip 和網域名稱,那麼,它們就會去訪問dns伺服器嗎?如果真的要去訪問,網路不通的情況下,它們又怎麼辦呢?帶著這些疑問,我在網上查了一下,並根據提示,做了一下試驗,簡單總結了一下 gethostbyname 網域名稱 ip gethostbyaddr ip 網域名稱 在解析的...

gethostbyname失敗要配置dns

gethostbyname 返回對應於給定主機名的包含主機名字和位址資訊的hostent結構指標。結構的宣告與gethostaddr 中一致。返回對應於給定主機名的主機資訊 struct hostent gethostbyname const char name 這個函式的傳入值是網域名稱或者主機名...