gethostbyname
()返回對應於給定主機名的包含主機名字和位址資訊的hostent結構指標。結構的宣告與gethostaddr()中一致。返回對應於給定主機名的主機資訊
struct hostent *gethostbyname(const char *name);
這個函式的傳入值是網域名稱或者主機名,例如"www.google.cn"等等。傳出值,是乙個hostent的結構。如果函式呼叫失敗,將返回null。
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。
如果呼叫返回失敗:
ping 網域名稱也平不通
需要配置dns:
vi /etc/hosts 新增:
192.168.1.1 nameserver v
i /etc/resolv.conf 新增:
nameserver 192.168.1.1
gethostbyname 簡明用法
使用這個東西,首先要包含2個頭檔案 這個函式的傳入值是網域名稱或者主機名,例如 www.google.com wpc 等等。傳出值,是乙個hostent的結構 如下 如果函式呼叫失敗,將返回null。解釋一下這個結構,其中 char h name 表示的是主機的規範名。例如www.google.co...
gethostbyname 函式說明
gethostbyname 函式說明 用網域名稱或主機名獲取ip位址 包含標頭檔案 include include 函式原型 struct hostent gethostbyname const char name 這個函式的傳入值是網域名稱或者主機名,例如 www.google.cn 等等。傳出值...
linux下gethostbyname工作原理
既然這兩個函式能夠轉換 ip 和網域名稱,那麼,它們就會去訪問dns伺服器嗎?如果真的要去訪問,網路不通的情況下,它們又怎麼辦呢?帶著這些疑問,我在網上查了一下,並根據提示,做了一下試驗,簡單總結了一下 gethostbyname 網域名稱 ip gethostbyaddr ip 網域名稱 在解析的...