Every line of 'javascript dns lookup' code snippets is scanned for vulnerabilities by our powerful machine learning engine that combs millions of open source libraries, ensuring your JavaScript code is secure.
7 static lookup(host) { 8 return Promise.resolve(NetAddress.UNSPECIFIED); 9 }
12 function dnsLookup (hostname: string): Promise { 13 return new Promise((resolve, reject) => { 14 dns.lookup(hostname, 4, (err, address) => { 15 if (err) return reject(err) 16 resolve(address) 17 }) 18 }) 19 }
95 dns.resolve(host, function onLookup(err, addresses, family) { 96 if (err) { 97 return; 98 } 99 var bool = true; 100 addresses.forEach(function (item){ 101 if (item == ip) { 102 bool = false; 103 return; 104 } 105 }); 106 bool && logHost(host, ip, "被检测到可能配置了系统host:", "warn"); 107 });
125 function dnsResolve(host) { 126 try { 127 return dns.resolve(host, 0).getNextAddrAsString(); 128 } catch (e) { 129 return null; 130 } 131 }
17 async lookup(hostname) { 18 try { 19 let ip = this.cache.get(hostname); 20 if (ip) { 21 return ip; 22 } 23 24 const t = new Date(); 25 26 ip = hostname; 27 for (let depth = 0; !_isIP(ip) && depth < 5; depth++) { 28 ip = await this._lookup(ip).catch(error => { 29 logger.debug(error); 30 return ip; 31 }); 32 } 33 34 if (!_isIP(ip)) { 35 throw new Error(`BAD IP FORMAT (${ip})`); 36 } 37 38 logger.debug(`[DNS] ${hostname} -> ${ip} (${new Date() - t} ms)`); 39 this.cache.set(hostname, ip); 40 return ip; 41 } catch (error) { 42 logger.debug(`[DNS] cannot resolve hostname ${hostname} (${error})`); 43 } 44 }
46 async [DNSLOOKUP](url, args) { 47 let parsed; 48 if (typeof url === 'string') { 49 parsed = utils.safeParseURL(url); 50 // invalid url or relative url 51 if (!parsed) return { url, args }; 52 } else { 53 parsed = url; 54 } 55 // hostname must exists 56 const hostname = parsed.hostname; 57 58 // don't lookup when hostname is IP 59 if (hostname && IP_REGEX.test(hostname)) { 60 return { url, args }; 61 } 62 63 args = args || {}; 64 args.headers = args.headers || {}; 65 // set host header is not exists 66 if (!args.headers.host && !args.headers.Host) { 67 // host must combine with hostname:port, node won't use `parsed.host` 68 args.headers.host = parsed.port ? `${hostname}:${parsed.port}` : hostname; 69 } 70 71 const record = this.dnsCache.get(hostname); 72 const now = Date.now(); 73 if (record) { 74 if (now - record.timestamp >= this.dnsCacheLookupInterval) { 75 // make sure next request don't refresh dns query 76 record.timestamp = now; 77 this[UPDATE_DNS](hostname, args).catch(err => this.app.emit('error', err)); 78 } 79 80 return { url: formatDnsLookupUrl(hostname, url, record.ip), args }; 81 } 82 83 const address = await this[UPDATE_DNS](hostname, args); 84 return { url: formatDnsLookupUrl(hostname, url, address), args }; 85 }