Мне нужно найти данный хост для его соответствующего IP-адреса в Node.js. Там, кажется, два нативные методы сделать это:Node.js dns.resolve() vs dns.lookup()
> dns.resolve('google.com', (error, addresses) => { console.error(error); console.log(addresses); });
QueryReqWrap {
bindingName: 'queryA',
callback: { [Function: asyncCallback] immediately: true },
hostname: 'google.com',
oncomplete: [Function: onresolve],
domain:
Domain {
domain: null,
_events: { error: [Function] },
_eventsCount: 1,
_maxListeners: undefined,
members: [] } }
> null
[ '216.58.194.174' ]
И:
> dns.lookup('google.com', (error, address, family) => { console.error(error); console.log(address); console.log(family); });
GetAddrInfoReqWrap {
callback: { [Function: asyncCallback] immediately: true },
family: 0,
hostname: 'google.com',
oncomplete: [Function: onlookup],
domain:
Domain {
domain: null,
_events: { error: [Function] },
_eventsCount: 1,
_maxListeners: undefined,
members: [] } }
> null
216.58.194.174
4
Оба возвращают один и тот же адрес IPv4. В чем разница между dns.lookup()
и dns.resolve()
? Кроме того, что более эффективно для множества запросов в секунду?
Следует упомянуть, что список разрешенных IP-адресов приходит каждый раз в другом порядке. Это можно использовать для балансировки нагрузки (разрешение DNS с использованием метода round robin). https://www.nginx.com/resources/glossary/dns-load-balancing/ – rocketspacer