如何使用 nodejs 检查 DNS?
How can I check DNS using nodejs?
我需要做递归检查 DNS,就像 linux 的命令
$ dig +recurse some.site
使用 nodejs。这个 'request' 必须 return DNS 的对象,因为我需要和他们一起工作。
我需要这个功能来正确使用 DNS,它必须绕过 TTL(我不确定它在英语上听起来是否正确)。标准的 dns 模块可以做到这一点吗?
您可以使用 the core DNS module。他们给出的第一个例子是查找 www.google.com
var dns = require('dns');
dns.lookup('www.google.com', function onLookup(err, addresses, family) {
console.log('addresses:', addresses);
});
也看看这个 native-dns 模块
我做到了!
我用了 this module.
首先我定义问题:
var question = dns.Question({
name: 'somesite.com',
type: 'A',
});
其次我向根服务器请求:
var dns = require('native-dns');
var standard_dns = require('dns'); //for dns.lookup() function
var req = dns.Request({
question: question,
server: { address: '199.7.91.13', port: 53, type: 'udp' },
timeout: 1000,
});
然后我这样做:
req.on('message', function (err, answer) {
answer.authority.forEach(function(a){ //looking each authority server
var addresses = String(a.data),//stringify it
standard_dns.lookup(addresses, function(e, add){ //lookup this server with standard 'dns' module
var req = dns.Request({
question: question,//question for somesite.com
server: {address: add}//do request on this server
})
req.on('message', function(e, a){
console.log(a);//a - is what you need
})
req.send(); //send request
})
})
});
我需要做递归检查 DNS,就像 linux 的命令
$ dig +recurse some.site
使用 nodejs。这个 'request' 必须 return DNS 的对象,因为我需要和他们一起工作。
我需要这个功能来正确使用 DNS,它必须绕过 TTL(我不确定它在英语上听起来是否正确)。标准的 dns 模块可以做到这一点吗?
您可以使用 the core DNS module。他们给出的第一个例子是查找 www.google.com
var dns = require('dns');
dns.lookup('www.google.com', function onLookup(err, addresses, family) {
console.log('addresses:', addresses);
});
也看看这个 native-dns 模块
我做到了! 我用了 this module.
首先我定义问题:
var question = dns.Question({
name: 'somesite.com',
type: 'A',
});
其次我向根服务器请求:
var dns = require('native-dns');
var standard_dns = require('dns'); //for dns.lookup() function
var req = dns.Request({
question: question,
server: { address: '199.7.91.13', port: 53, type: 'udp' },
timeout: 1000,
});
然后我这样做:
req.on('message', function (err, answer) {
answer.authority.forEach(function(a){ //looking each authority server
var addresses = String(a.data),//stringify it
standard_dns.lookup(addresses, function(e, add){ //lookup this server with standard 'dns' module
var req = dns.Request({
question: question,//question for somesite.com
server: {address: add}//do request on this server
})
req.on('message', function(e, a){
console.log(a);//a - is what you need
})
req.send(); //send request
})
})
});