如何使用 DNS 和 LWIP 获取 ip?

How get ip with DNS and LWIP?

我正在使用 STM32F407 和带 uC-OS 的 lwip,我想从 dns 获取 ip。我试着调用这个函数。

ip_addr_t TargetIp;
dns_gethostbyname("www.google.com", &TargetIp, NULL, NULL);

但是,这个函数return -5 (ERR_INPROGRESS)。此外,如果我写“192.168.10.15”而不是“www.google.com”,则没有问题。如何通过 DNS 或其他方法获取 ip。

我解决了!我修复了 dns_gethostbyname

的函数调用
dns_gethostbyname("www.google.com", &TargetIp, dnsFound, NULL);

然后我写了一个回调函数,名称是 dnsFound 是这样的。

void dnsFound(const char *name, ip_addr_t *ipaddr, void *arg) 
{       
    dns_gethostbyname("www.google.com", &TargetIp, dnsFound, NULL);
}