- Node.js 教程
- Node.js - 首頁
- Node.js - 簡介
- Node.js - 環境設定
- Node.js - 第一個應用程式
- Node.js - REPL 終端
- Node.js - 命令列選項
- Node.js - 包管理器 (NPM)
- Node.js - 回撥函式概念
- Node.js - 上傳檔案
- Node.js - 傳送電子郵件
- Node.js - 事件
- Node.js - 事件迴圈
- Node.js - 事件發射器
- Node.js - 偵錯程式
- Node.js - 全域性物件
- Node.js - 控制檯
- Node.js - 程序
- Node.js - 應用程式擴充套件
- Node.js - 打包
- Node.js - Express 框架
- Node.js - RESTFul API
- Node.js - 緩衝區
- Node.js - 流
- Node.js - 檔案系統
- Node.js MySQL
- Node.js - MySQL 入門
- Node.js - MySQL 建立資料庫
- Node.js - MySQL 建立表
- Node.js - MySQL 插入資料
- Node.js - MySQL 從表中選擇資料
- Node.js - MySQL Where 條件
- Node.js - MySQL 排序
- Node.js - MySQL 刪除資料
- Node.js - MySQL 更新資料
- Node.js - MySQL 聯接
- Node.js MongoDB
- Node.js - MongoDB 入門
- Node.js - MongoDB 建立資料庫
- Node.js - MongoDB 建立集合
- Node.js - MongoDB 插入資料
- Node.js - MongoDB 查詢資料
- Node.js - MongoDB 查詢
- Node.js - MongoDB 排序
- Node.js - MongoDB 刪除資料
- Node.js - MongoDB 更新資料
- Node.js - MongoDB 限制結果
- Node.js - MongoDB 聯接
- Node.js 模組
- Node.js - 模組
- Node.js - 內建模組
- Node.js - 實用程式模組
- Node.js - Web 模組
- Node.js 有用資源
- Node.js - 快速指南
- Node.js - 有用資源
- Node.js - 討論
Node.js - DNS 模組
Node.js 的dns模組用於執行實際的 DNS 查詢,以及使用底層作業系統名稱解析功能。此模組提供了一個非同步網路包裝器,可以使用以下語法匯入。
var dns = require("dns")
方法
| 序號 | 方法及描述 |
|---|---|
| 1 |
dns.lookup(hostname[, options], callback) 將主機名(例如“google.com”)解析為找到的第一個 A(IPv4)或 AAAA(IPv6)記錄。options 可以是物件或整數。如果未提供 options,則 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 記錄)。addresses 是 IPv4 地址的陣列(例如 ['74.125.79.104', '74.125.79.105', '74.125.79.106'])。 |
| 5 |
dns.resolve6(hostname, callback) 與 dns.resolve4() 相同,但適用於 IPv6 查詢(AAAA 查詢)。 |
| 6 |
dns.resolveMx(hostname, callback) 與 dns.resolve() 相同,但僅適用於郵件交換查詢(MX 記錄)。 |
| 7 |
dns.resolveTxt(hostname, callback) 與 dns.resolve() 相同,但僅適用於文字查詢(TXT 記錄)。addresses 是主機名可用的文字記錄的二維陣列(例如,[ ['v=spf1 ip4:0.0.0.0 ', '~all' ] ])。每個子陣列包含一個記錄的 TXT 塊。根據用例,可以將它們連線在一起或單獨處理。 |
| 8 |
dns.resolveSrv(hostname, callback) 與 dns.resolve() 相同,但僅適用於服務記錄(SRV 記錄)。addresses 是主機名可用的 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 記錄)。addresses 是主機名可用的名稱伺服器記錄的陣列(例如,['ns1.example.com', 'ns2.example.com'])。 |
| 11 |
dns.resolveCname(hostname, callback) 與 dns.resolve() 相同,但僅適用於規範名稱記錄(CNAME 記錄)。addresses 是主機名可用的規範名稱記錄的陣列(例如,['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"]
