DNS Module trong Node.js



dns Module trong Node.js được sử dụng để thực hiện DNS Lookup. Module cung cấp một Network Wrapper không đồng bộ và có thể được import với cú pháp.

var dns = require("dns")

Phương thức của dns Module trong Node.js

SttPhương thức & Miêu tả
1dns.lookup(hostname[, options], callback)
Resolve một hostname (ví dụ 'google.com') vào trong bản ghi A (IPv4) hoặc AAAA (IPv6) đầu tiên được tìm thấy. Tham số options có thể là một đối tượng hoặc một số nguyên. Nếu bạn không cung cấp tham số options, thì các địa chỉ IP v4 và v6 đều hợp lệ. Nếu options là một số nguyên, thì nó phải là 4 hoặc 6.
2dns.lookupService(address, port, callback)
Resolve một address và port đã cho vào trong một hostname
3dns.resolve(hostname[, rrtype], callback)
Resolve một hostname (ví dụ 'google.com') vào trong một mảng các kiểu bản ghi đã được xác định bởi tham số rrtype.
4dns.resolve4(hostname, callback)
Giống như dns.resolve(), nhưng chỉ cho các truy vấn IPv4 (một truy vấn A).
5dns.resolve6(hostname, callback)
Giống như dns.resolve4(), nhưng chỉ cho các truy vấn (một truy vấn AAAA).
6dns.resolveMx(hostname, callback)
Giống như dns.resolve(), nhưng chỉ cho các truy vấn Mail Exchange.
7dns.resolveTxt(hostname, callback)
Giống như dns.resolve(), nhưng chỉ cho các truy vấn Text
8dns.resolveSrv(hostname, callback)
Giống như dns.resolve(), nhưng chỉ cho các truy vấn SRV
9dns.resolveSoa(hostname, callback)
Giống như dns.resolve(), nhưng chỉ cho các truy vấn SOA
10dns.resolveNs(hostname, callback)
Giống như dns.resolve(), nhưng chỉ cho các truy vấn NS
11dns.resolveCname(hostname, callback)
Giống như dns.resolve(), nhưng chỉ cho các truy vấn CNAME
12dns.reverse(ip, callback)
Đảo ngược việc resolve một địa chỉ IP thành một mảng bao gồm các hostname

Giá trị rrtype của dns Module trong Node.sj

Danh sách dưới liệt kê các giá trị rrtypes được sử dụng bởi phương thức dns.resolve():

  • A - Giá trị mặc định là các địa chỉ IPV4

  • AAAA - Các địa chỉ IPV6

  • MX - Các bản ghi về Mail Exchange

  • TXT - Các bản ghi về Text

  • SRV - Các bản ghi về SRV

  • PTR - Được sử dụng để đảo chiều IP Lookup

  • NS - Các bản ghi về Name Server

  • CNAME - Các bản ghi về Canonical Name

  • SOA - Là viết tắt của Start of Authority Record

Một số Error Code của dns Module trong Node.js

Mỗi truy vẫn DNS có thể trả về một trong các Error Code sau:

  • dns.NODATA - DNS Server trả về phản hồi mà không bao gồm dữ liệu nào.

  • dns.FORMERR - DNS Server thông báo truy vấn sai định dạng.

  • dns.SERVFAIL - DNS Server trả về một lỗi chung.

  • dns.NOTFOUND - Không tìm thấy tên miền.

  • dns.NOTIMP - DNS Server không triển khai hoạt động request.

  • dns.REFUSED - DNS Server từ chối truy vấn.

  • dns.BADQUERY - Truy vấn sai định dạng.

  • dns.BADNAME - Hostname sai định dạng.

  • dns.BADFAMILY - Address Family không được hỗ trợ.

  • dns.BADRESP - Phản hồi từ DNS sai định dạng.

  • dns.CONNREFUSED - Không thể kết nối tới DNS Server.

  • dns.TIMEOUT - Timeout trong khi kết nối tới DNS Server.

  • dns.EOF - Viết tắt của End of file.

  • dns.FILE - Xảy ra lỗi trong khi đọc file.

  • dns.NOMEM - Hết bộ nhớ.

  • dns.DESTRUCTION - Channel đang bị hủy.

  • dns.BADSTR - Chuỗi sai định dạng.

  • dns.BADFLAGS - Các Flag không hợp lệ.

  • dns.NONAME - Hostname không phải dưới dạng số.

Ví dụ

Ví dụ sau minh họa một số phương thức của dns Module trong Node.js. Bạn tạo main.js có nội dung sau:

var dns = require('dns');dns.lookup('www.google.com', function onLookup(err, address, family) {
   console.log('Dia chi:', address);
   dns.reverse(address, function (err, hostnames) {
   if (err) {
      console.log(err.stack);
   }   console.log('Phuong thuc REVERSE cho dia chi: ' + address + ' thanh mang cac hostname: ' + JSON.stringify(hostnames));
});  
});

Chạy main.js để xem kết quả::

$ node main.js

Kiểm tra kết quả:

Dia chi: 173.194.46.83
Phuong thuc REVERSE cho dia chi 173.194.46.83 thanh mang cac hostname: ["ord08s11-in-f19.1e100.net"]

Các bài học NodeJS phổ biến khác tại VietJack:


utility_module_trong_nodejs.jsp