|
发表于 2022-2-8 11:16:01
|
显示全部楼层
硬汉 2022/1/13 20:42:32
方法一,阻塞的函数。
NET_ADDR addr;
char ip_ascii[40];
if (netDNSc_GetHostByNameX ("www.arm.com", NET_ADDR_IP4, &addr) == netOK) {
// Success, 'addr' holds resolved IP address
netIP_ntoa (addr->addr_type, adr->addr, ip_ascii, sizeof(ip_ascii));
printf("IP Address: %s\n", ip_ascii);
}
硬汉 2022/1/13 20:42:58
方法二,非阻塞的,在回调函数完成。
static void dns_cbfunc (netDNSc_Event event, const NET_ADDR *addr);
if (netDNSc_GetHostByName ("www.arm.com", NET_ADDR_IP4, dns_cbfunc) == netOK) {
// Started, will complete on callback notification
}
static void dns_cbfunc (netDNSc_Event event, const NET_ADDR *addr) {
char ip_ascii[40];
switch (event) {
case netDNSc_EventSuccess:
// Host Address successfully resolved
netIP_ntoa (addr->addr_type, adr->addr, ip_ascii, sizeof(ip_ascii));
printf("IP Address: %s\n", ip_ascii);
break;
case netDNSc_EventNotResolved:
// Error, host name does not exist in DNS record database
break;
case netDNSc_EventTimeout:
// Error, DNS resolver timeout expired
break;
case netDNSc_EventError:
// Error, DNS protocol error occurred
break;
}
}
|
|