1234567891011121314151617181920212223242526272829 |
- import { lookup } from 'dns'
- import ipaddr from 'ipaddr.js'
- function dnsLookupAll (hostname: string) {
- return new Promise<string[]>((res, rej) => {
- lookup(hostname, { family: 0, all: true }, (err, adresses) => {
- if (err) return rej(err)
- return res(adresses.map(a => a.address))
- })
- })
- }
- async function isResolvingToUnicastOnly (hostname: string) {
- const addresses = await dnsLookupAll(hostname)
- for (const address of addresses) {
- const parsed = ipaddr.parse(address)
- if (parsed.range() !== 'unicast') return false
- }
- return true
- }
- export {
- dnsLookupAll,
- isResolvingToUnicastOnly
- }
|