在Node中获取DNS MX记录

时间:2013-09-13 10:53:03

标签: javascript node.js dns

我想获取主机名www.example.com的MX记录。节点已经有了它的功能。

dns.resolveMx(domain, callback)

但我不想要那种回调。我想要同步调用之类的东西。 e.g。

var records = dns.resolveMx(domain);

这可能吗?

(注意: - 我在Node文档中找到了该功能。链接: - http://nodejs.org/api/dns.html

1 个答案:

答案 0 :(得分:1)

您是否有任何理由要通过网络操作阻止您的应用程序? DNS解析器由c-ares库在C级调用,该库是设计异步的。因此,您无法使其同步。这是DNS模块中删除了不需要的部分的代码:

var cares = process.binding('cares_wrap');

function resolver(bindingName) {
  var binding = cares[bindingName];

  return function query(name, callback) {
    callback = makeAsync(callback);
    var req = {
      bindingName: bindingName,
      callback: callback,
      oncomplete: onresolve
    };
    var err = binding(req, name);
    if (err) throw errnoException(err, bindingName);
    callback.immediately = true;
    return req;
  }
}

var resolveMap = {};
exports.resolveMx = resolveMap.MX = resolver('queryMx');