Nodejs-dns-module
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"]