域名解析
在项目应用中,运用到了域名解析的功能,第一次接触,在这里记录下来:
1.先把LWIP_DNS宏定义开启
在lwipopts.h中使能DNS功能,如下所示:
#define LWIP_DNS 1
2.在系统初始化时调用
dns_init();
sys_timeouts_init();
以上初始化在lwip协议栈1.4.1版本中lwip_init();函数中已初始化完成,只需调用lwip_init();即可;
3.在你认为需要调用的地方调用
dns_gethostbyname(const char *hostname, ip_addr_t *addr, dns_found_callback found, void *found);
其中,hostname为你需要解析的域名,addr为解析返回的IP地址指针,found回调函数。
4.特别注意:配置正确的DNS服务器地址。
(尽量通过DHCP获取DNS服务器地址,不要手动填写,参考:https://blog.csdn.net/chen244798611/article/details/78576806)
/** DNS server IP address */
#ifndef DNS_SERVER_ADDRESS
#define DNS_SERVER_ADDRESS(ipaddr) (ip4_addr_set_u32(ipaddr, ipaddr_addr