使用w5500最好使用wiznet官方原始碼,使用某火的例程被坑死。
dns網域名稱解析基於udp協議的,對mac位址有要求,對於網絡卡mac要使用單播位址,即mac的32位為0,可以參考sambookshelf的mac位址規則,如圖1。
免費的dns伺服器如下圖2.也可以將dns伺服器設定為閘道器位址,閘道器會自動解析網域名稱。
在工程中新增dns相關檔案如圖3.utility.c中包含一些字串處理的演算法,dns.c中包含網域名稱解析的相關操作。
w5500官方原始碼中,dns網域名稱解析分為兩步:
初始化dns的socket和快取區。
進行網域名稱解析。
程式**如下,**中的串列埠輸出程式基於rtthread作業系統,使用時可以進行修改。
/**
*@brief:網域名稱解析
*@input: domain_name: 網域名稱字串
*@return: 無
*/void dnslink(uint8_t *domain_name)
;//閘道器位址,根據實際情況修改
uint8_t dns_2nd[4]=;//定義乙個備用的dns
uint8_t domain_ip[4];//存放dns返回的網域名稱對應的ip位址
dns_init(sock_dns,dnsbuf);
rt_kprintf("domain name:%s\r\n",domain_name);
rt_kprintf("try to connect first dns server %d.%d.%d.%d\r\n",dns_1st[0],dns_1st[1],dns_1st[2],dns_1st[3]);
ret = dns_run(dns_1st,domain_name,domain_ip);
if(ret != 1)
if(ret>0)else
}
參考連線: DNS網域名稱解析
dns是動態網域名稱系統的英文簡稱,是用來把我們輸入的網域名稱解析成ip位址的,如果沒有dns我們輸入的例如www.baidu.com這樣的網域名稱就無法被訪問。如果我們訪問 的時候要輸入ip位址的話,顯然既不方便也不容易記憶,所以我們用網域名稱來訪問 網域名稱雖然便於人們記憶,但網路中的計算機之間...
DNS網域名稱解析
一次請求過程大約經過三步 第一,dns網域名稱解析 第二,cdn獲取離使用者最近的節點 第三,建立http連線。今天和大家聊的是dns網域名稱解析。既然是dns網域名稱解析,那麼什麼是dns?dns domain name system,網域名稱系統 網際網路上作為網域名稱和ip位址相互對映的乙個分...
網域名稱解析 DNS
網際網路的網域名稱解析系統dns是乙個聯機分布式資料庫系統,並採用客戶 伺服器體系。tcp ip應用程式使用它來完成主機名稱和ip位址之間的對映。dns使大多數名字都在本地解析,僅少量解析需要在網際網路上通訊,因此系統效率很高。由於dns是分布式系統,即使單個計算機除了故障,也不會妨礙整個系統正常執...