1、 在 lwipopts.h 中
#define LWIP_DNS 1 /* 使能 DNS 服务器的功能 ,2018年1月8日21:16:20,suozhang */
#define LWIP_RAND() ((u32_t)rand()) /* 使用 DNS 服务器的功能,需要添加随机数函数 ,2018年1月8日21:16:20,suozhang */
2、在 初始化 服务中 ,进行初始化 DNS 的 服务器 IP 以及 初始化 DNS 服务
ip_addr_t dnsserver; /* Create tcp_ip stack thread */ tcpip_init( NULL, NULL ); /* 创建,运行 LWIP 协议栈,2018年1月9日10:56:34 */ IP4_ADDR(&dnsserver,114,114,114,114);/* suozhang,add,2018年1月11日18:03:10 */ dns_setserver(0, &dnsserver); IP4_ADDR(&dnsserver,223,5,5,5); /* suozhang,add,2018年1月11日18:03:10 */ dns_setserver(1, &dnsserver); dns_init(); /* 初始化 DNS 服务,2018年1月9日10:56:34 */
3、 在保证 能正常 联网的情况 下, 使用 下面的方式进行 域名解析服务
void my_found(const char *name, const ip_addr_t *ipaddr, void *arg) { uint8_t ip[4]; ip[0] = (ipaddr->addr)>>24; ip[1] = (ipaddr->addr)>>16; ip[2] = (ipaddr->addr)>>8; ip[3] = (ipaddr->addr); printf("%s ip is :%d.%d.%d.%d.\r\n",name,ip[3], ip[2], ip[1], ip[0]); } void test() { char hostname[]="www.baidu.com"; err_t err; err = dns_gethostbyname((char*)(hostname), &(serverIp),my_found,NULL); if( err == ERR_OK) { printf("netconn_gethostbyname ERR_OK.\r\n"); } else { printf("netconn_gethostbyname err:%d.\r\n",err); } }
5、 解析 结果
netconn_gethostbyname err:-5.
www.baidu.com ip is :111.13.100.91.
6、-5 意思 是正在解析中…………