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
Stt | Phương thức & Miêu tả |
---|---|
1 | dns.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. |
2 | dns.lookupService(address, port, callback) Resolve một address và port đã cho vào trong một hostname |
3 | dns.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. |
4 | dns.resolve4(hostname, callback) Giống như dns.resolve(), nhưng chỉ cho các truy vấn IPv4 (một truy vấn A). |
5 | dns.resolve6(hostname, callback) Giống như dns.resolve4(), nhưng chỉ cho các truy vấn (một truy vấn AAAA). |
6 | dns.resolveMx(hostname, callback) Giống như dns.resolve(), nhưng chỉ cho các truy vấn Mail Exchange. |
7 | dns.resolveTxt(hostname, callback) Giống như dns.resolve(), nhưng chỉ cho các truy vấn Text |
8 | dns.resolveSrv(hostname, callback) Giống như dns.resolve(), nhưng chỉ cho các truy vấn SRV |
9 | dns.resolveSoa(hostname, callback) Giống như dns.resolve(), nhưng chỉ cho các truy vấn SOA |
10 | dns.resolveNs(hostname, callback) Giống như dns.resolve(), nhưng chỉ cho các truy vấn NS |
11 | dns.resolveCname(hostname, callback) Giống như dns.resolve(), nhưng chỉ cho các truy vấn CNAME |
12 | dns.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ó app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.
Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.
Các bài học NodeJS phổ biến khác tại VietJack: