使用lwip的DNS功能查詢網域名稱對應的IP位址

2021-05-23 15:06:40 字數 690 閱讀 4643

lwip提供了從網域名稱查詢其ip位址的功能,提供該功能的函式為:

err_t netconn_gethostbyname(const char *name, struct ip_addr *addr)

定義和實現分別在lwip/src/include/lwip/api.h和lwip/api/api_lib.c中

但是需要注意的是在使用該函式前需要做兩件事情:

1. 在使用者配置檔案lwipopts.h中開啟dns的功能:

#define lwip_udp 1

2. 需要呼叫函式dns_init()建立dns的連線塊dns_pcb

void dns_init()

該函式位置在lwip/src/core/dns.c中,起主要功能是初始化解析器,設定udp pcb並且配置預設的dns伺服器

下面是乙個查詢的例子:

輸出:netconn_gethostbyname(www.baidu.com)==220.181.6.175

使用dig查詢dns解析

一般來說linux下查詢網域名稱解析有兩種選擇,nslookup或者dig,而在使用上我覺得dig更加方便順手。如果是在debian下的話,只要裝上dnsutils這個包就可以使用dig命令了。最基本的使用方式就是 dig www.oolec.com 即查詢網域名稱的a記錄,查詢的dns伺服器將採用...

DNS子域的授權

何為子域授權 每乙個大域,裡面都會有若干個小域。比如lnsjb.com就是乙個大域,裡面會有www域 即www.lnsjb.com 會有bbs域,會有movies域,會有data域等等等等。如果是壕企業,可以不用網域名稱服務商提供的dns伺服器,而自己搭建企業dns伺服器,但是需要把自己的dns伺服...

DNS的查詢方式

說明 在unix系統中,可以設定hosts和dns的使用次序。可以以不同的方式對dns查詢進行解析。第一種是本地解析,就是客戶端可以使用快取資訊就地應答,這些快取資訊是通過以前的查詢獲得的 第二種是直接解析,就是直接由所設定的dns伺服器解析,使用的是該dns伺服器的資源記錄快取或者其權威回答 如果...