www.163.com時(shí),抓包得到的DNS響應(yīng)包中有2個(gè)IP地址:221.229.167.47和58.220.39.91,如下圖所示。

雖然DNS解析得到了多個(gè)IP,但是大多數(shù)軟件只會(huì)使用第一個(gè)IP地址,這是什么原因?

TC" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 建站知識(shí) > 一個(gè)域名如果對(duì)應(yīng)多個(gè)IP,那么實(shí)際訪問這個(gè)域名會(huì)訪問到哪個(gè)IP哪臺(tái)服務(wù)器呢

一個(gè)域名如果對(duì)應(yīng)多個(gè)IP,那么實(shí)際訪問這個(gè)域名會(huì)訪問到哪個(gè)IP哪臺(tái)服務(wù)器呢

時(shí)間:2023-02-18 20:28:01 | 來源:建站知識(shí)

時(shí)間:2023-02-18 20:28:01 來源:建站知識(shí)

一個(gè)域名可以解析出幾個(gè)IP地址,例如在訪問

www.163.com時(shí),抓包得到的DNS響應(yīng)包中有2個(gè)IP地址:221.229.167.47和58.220.39.91,如下圖所示。


雖然DNS解析得到了多個(gè)IP,但是大多數(shù)軟件只會(huì)使用第一個(gè)IP地址,這是什么原因?

TCP/IP網(wǎng)絡(luò)通信是基于IP地址的,當(dāng)要訪問的服務(wù)器地址是域名時(shí),就需要先把域名解析成IP地址。在TCP/IP API中有一個(gè)叫g(shù)ethostbyname的函數(shù),負(fù)責(zé)把域名解析成IP地址。 函數(shù)的原型定義如下,參數(shù)name就是要解析的域名。

struct hostent *gethostbyname(const char *name);函數(shù)的返回值為一個(gè)結(jié)構(gòu)體指針,這個(gè)結(jié)構(gòu)體的定義為:

struct hostent { char *h_name; /* official name of host */ char **h_aliases; /* alias list */ int h_addrtype; /* host address type */ int h_length; /* length of address */ char **h_addr_list; /* list of addresses */}#define h_addr h_addr_list[0] /* for backward compatibility */結(jié)構(gòu)體中的h_addr_list是一個(gè)數(shù)組,用于存放解析出的多個(gè)IP地址,但很少有程序員會(huì)去考慮多個(gè)IP地址的問題,通常直接使用宏h_addr來獲取IP地址,也就是第一個(gè)IP地址。

一些大型網(wǎng)站或CDN服務(wù)商為了實(shí)現(xiàn)負(fù)載均衡,他們的DNS服務(wù)器會(huì)動(dòng)態(tài)改變多個(gè)IP地址的順序,使得每個(gè)IP地址都有機(jī)會(huì)成為解析結(jié)果中的第一個(gè)IP地址。

下面的小程序可以打印出解析

www.163.com得到的第一個(gè)IP地址,多次運(yùn)行這個(gè)程序,IP地址是交替的。

#include <stdio.h>#include <netdb.h>#include <arpa/inet.h>#include <netinet/in.h>int main(){ struct hostent *host; struct in_addr h_addr; if ((host = gethostbyname("www.163.com")) != NULL) { h_addr.s_addr = *((unsigned long *) host->h_addr); printf("%s/n", inet_ntoa(h_addr)); } return 0;}

關(guān)鍵詞:訪問,服務(wù),對(duì)應(yīng),實(shí)際

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉