Nodejs-dns-module

提供:Dev Guides
移動先:案内検索

Node.js-DNSモジュール

Node.js dns モジュールは、実際のDNSルックアップを行うためだけでなく、基礎となるオペレーティングシステムの名前解決機能を使用するために使用されます。 このモジュールは非同期ネットワークラッパーを提供し、次の構文を使用してインポートできます。

var dns = require("dns")

方法

Sr.No. Method & Description
1

dns.lookup(hostname[, options], callback)

ホスト名を解決します(例: 「google.com」)を最初に見つかったA(IPv4)またはAAAA(IPv6)レコードに追加します。 オプションはオブジェクトまたは整数です。 オプションが提供されない場合、IP v4およびv6アドレスは両方とも有効です。 optionsが整数の場合、4または6でなければなりません。

2

dns.lookupService(address, port, callback)

getnameinfoを使用して、指定されたアドレスとポートをホスト名とサービスに解決します。

3

dns.resolve(hostname[, rrtype], callback)

ホスト名を解決します(例: 'google.com')をrrtypeで指定されたレコードタイプの配列に格納します。

4

dns.resolve4(hostname, callback)

dns.resolve()と同じですが、IPv4クエリ(Aレコード)専用です。 アドレスはIPv4アドレスの配列です(例: ['74 .125.79.104 '、' 74.125.79.105 '、' 74.125.79.106 '])。

5

dns.resolve6(hostname, callback)

IPv6クエリ(AAAAクエリ)を除き、dns.resolve4()と同じです。

6

dns.resolveMx(hostname, callback)

dns.resolve()と同じですが、メール交換クエリ(MXレコード)専用です。

7

dns.resolveTxt(hostname, callback)

dns.resolve()と同じですが、テキストクエリ(TXTレコード)専用です。 アドレスは、ホスト名に使用できるテキストレコードの2次元配列です(例:'v = spf1 ip4:0.0.0.0'、 '〜all')。 各サブアレイには、1つのレコードのTXTチャンクが含まれています。 ユースケースに応じて、それらを結合するか、個別に処理することができます。

8

dns.resolveSrv(hostname, callback)

dns.resolve()と同じですが、サービスレコード(SRVレコード)専用です。 アドレスは、ホスト名に使用できるSRVレコードの配列です。 SRVレコードのプロパティは、優先度、重み、ポート、および名前です(例:[\ {'priority':10、 'weight':5、 'port':21223、 'name': 'service.example.com'}、 …​])。

9

dns.resolveSoa(hostname, callback)

dns.resolve()と同じですが、権限レコードクエリ(SOAレコード)の開始のみです。

10

dns.resolveNs(hostname, callback)

dns.resolve()と同じですが、ネームサーバーレコード(NSレコード)専用です。 アドレスは、ホスト名に使用可能なネームサーバーレコードの配列です(例:['ns1.example.com'、 'ns2.example.com'])。

11

dns.resolveCname(hostname, callback)

dns.resolve()と同じですが、正規名レコード(CNAMEレコード)専用です。 アドレスは、ホスト名に使用できる正規名レコードの配列です(例:['bar.example.com'])。

12

dns.reverse(ip, callback)

IPアドレスをホスト名の配列に逆引きします。

13

dns.getServers()

現在解決に使用されている文字列としてIPアドレスの配列を返します。

14

dns.setServers(servers)

IPアドレスの配列を文字列として指定し、それらを解決に使用するサーバーとして設定します。

rrtypes

以下は、dns.resolve()メソッドで使用される有効なrrtypesのリストです-

  • A -IPV4アドレス、デフォルト
  • AAAA -IPV6アドレス
  • MX -メール交換レコード
  • TXT -テキストレコード
  • SRV -SRVレコード
  • PTR -逆IPルックアップに使用
  • NS -ネームサーバーレコード
  • CNAME -正規名レコード
  • SOA -権限レコードの開始

エラーコード

各DNSクエリは、次のエラーコードのいずれかを返すことができます-

  • dns.NODATA -DNSサーバーはデータなしで応答を返しました。
  • dns.FORMERR -DNSサーバークレームクエリの形式が間違っています。
  • dns.SERVFAIL -DNSサーバーが一般的なエラーを返しました。
  • dns.NOTFOUND -ドメイン名が見つかりません。
  • dns.NOTIMP -DNSサーバーは、要求された操作を実装しません。
  • dns.REFUSED -DNSサーバーはクエリを拒否しました。
  • dns.BADQUERY -誤った形式のDNSクエリ。
  • dns.BADNAME -ホスト名の形式が正しくありません。
  • dns.BADFAMILY -サポートされていないアドレスファミリ。
  • dns.BADRESP -誤った形式のDNS応答。
  • dns.CONNREFUSED -DNSサーバーに接続できませんでした。
  • dns.TIMEOUT -DNSサーバーへの接続中のタイムアウト。
  • dns.EOF -ファイルの終わり。
  • dns.FILE -ファイルの読み取りエラー。
  • dns.NOMEM -メモリ不足。
  • dns.DESTRUCTION -チャネルが破壊されています。
  • dns.BADSTR -誤った形式の文字列。
  • dns.BADFLAGS -無効なフラグが指定されています。
  • dns.NONAME -指定されたホスト名は数値ではありません。
  • dns.BADHINTS -指定された無効なヒントフラグ。
  • dns.NOTINITIALIZED -c-aresライブラリの初期化はまだ実行されていません。
  • dns.LOADIPHLPAPI -iphlpapi.dllの読み込みエラー。
  • dns.ADDRGETNETWORKPARAMS -GetNetworkParams関数が見つかりませんでした。
  • dns.CANCELLED -DNSクエリがキャンセルされました。

次のコードでmain.jsという名前のjsファイルを作成します-

var dns = require('dns');

dns.lookup('www.google.com', function onLookup(err, address, family) {
   console.log('address:', address);
   dns.reverse(address, function (err, hostnames) {
      if (err) {
         console.log(err.stack);
      }

      console.log('reverse for ' + address + ': ' + JSON.stringify(hostnames));
   });
});

次に、main.jsを実行して結果を確認します-

$ node main.js

出力を確認します。

address: 173.194.46.83
reverse for 173.194.46.83: ["ord08s11-in-f19.1e100.net"]