Chuyển đến nội dung chính

Net::Whois - Công cụ cào dữ liệu kiểm tra thông tin tên miền qua RDAP và WHOIS

Tổng quan về công cụ cào dữ liệu

Tổng quan về công cụ cào dữ liệu

Dữ liệu về tên miền được thu thập thông qua RDAP (HTTP, JSON) hoặc WHOIS (cổng 43) — tùy thuộc vào vùng tên miền. Đối với mỗi TLD trong công cụ cào dữ liệu, các máy chủ RDAP và WHOIS đã được thiết lập sẵn; nếu RDAP khả dụng cho vùng đó, truy vấn sẽ được thực hiện qua nó trước tiên, nếu lỗi sẽ chuyển sang WHOIS.

Chi tiết hơn: RDAP (tiếng Anh), WHOIS.

Tính năng của A-Parser cho phép lưu các cài đặt cào dữ liệu để sử dụng sau này (preset), thiết lập lịch trình cào dữ liệu và nhiều tính năng khác. Bạn có thể sử dụng tính năng tự động nhân bản truy vấn, thay thế truy vấn phụ từ tệp, quét các tổ hợp chữ-số và danh sách để nhận được số lượng kết quả tối đa có thể.

Việc lưu kết quả có thể thực hiện theo bất kỳ hình thức và cấu trúc nào bạn cần, nhờ vào bộ tạo mẫu mạnh mẽ tích hợp sẵn Template Toolkit cho phép áp dụng logic bổ sung cho kết quả và xuất dữ liệu ở nhiều định dạng khác nhau, bao gồm JSON, SQL và CSV.

Các trường hợp ứng dụng công cụ cào dữ liệu

Dữ liệu thu thập được

  • Tên miền đã đăng ký hay chưa
  • Ngày hết hạn đăng ký tên miền
  • Thời điểm đăng ký tên miền
  • Ngày cập nhật bản ghi cuối cùng
  • URL của máy chủ RDAP — khi truy vấn RDAP thành công
  • Máy chủ WHOIS được sử dụng — khi truy vấn WHOIS; thường để trống khi dùng RDAP
  • Danh sách Name Server của tên miền
  • Nhà đăng ký tên miền
  • Trạng thái hiện tại của tên miền
  • Ngày tên miền được giải phóng
  • Phản hồi thô — văn bản WHOIS hoặc JSON RDAP

Tính năng

  • Tự động chọn RDAP hoặc WHOIS theo vùng tên miền (ưu tiên RDAP)
  • Hỗ trợ làm việc với các tên miền quốc tế (IDN, ví dụ яндекс.рф)

Các biến thể sử dụng

  • Thu thập các tên miền tự do hoặc những tên miền sắp được giải phóng
  • Thu thập danh sách các máy chủ NS
  • Lấy trạng thái của các tên miền

Truy vấn

Trong các truy vấn, bạn cần chỉ định tên miền của trang web cần tìm, ví dụ:

a-parser.com  
yandex.ru
google.com
vk.com
facebook.com

Các tùy chọn xuất kết quả

A-Parser hỗ trợ định dạng kết quả linh hoạt nhờ bộ tạo mẫu tích hợp Template Toolkit, cho phép xuất kết quả dưới dạng tùy ý cũng như có cấu trúc như CSV hoặc JSON.

Xuất mặc định

Định dạng kết quả:

$query - registered: $registered, expire: $expire_date, creation: $creation_date

Kết quả hiển thị tên miền, trạng thái đã đăng ký hay chưa, ngày hết hạn và ngày đăng ký tên miền:

facebook.com - registered: 1, expire: 30.03.2028, creation: 29.03.1997
a-parser.com - registered: 1, expire: 25.02.2022, creation: 25.02.2012
vk.com - registered: 1, expire: 23.06.2021, creation: 24.06.1997
yandex.ru - registered: 1, expire: 01.10.2021, creation: 23.09.1997
google.com - registered: 1, expire: 14.09.2028, creation: 15.09.1997

Xuất danh sách NS

Định dạng kết quả:

$ns.format('$server\n')

Ví dụ kết quả:

demi.ns.cloudflare.com
vern.ns.cloudflare.com

Xuất dữ liệu về thời hạn tên miền ra CSV

Định dạng kết quả:

[% tools.CSVline(query, registered, expire_date, creation_date, updated_date, free_date, whoisserver, rdapserver, registrar) %]

Ví dụ kết quả (tên miền .com, phản hồi qua RDAP — whoisserver trống, rdapserver được điền):

a-parser.com,1,25.02.2027,25.02.2012,10.02.2026,none,,https://rdap.verisign.com/com/v1/domain/a-parser.com,"Squarespace Domains II LLC"

Xuất danh sách NS vào bảng CSV

Định dạng kết quả:

[% FOREACH ns;
tools.CSVline(query, server);
END %]

Ví dụ kết quả:

a-parser.com,demi.ns.cloudflare.com
a-parser.com,vern.ns.cloudflare.com

Dump kết quả ra JSON

Định dạng kết quả chung:

[% IF notFirst;
",\n";
ELSE;
notFirst = 1;
END;

obj = {};
obj.query = query;
obj.registered = p1.registered;
obj.expire_date = p1.expire_date;
obj.creation_date = p1.creation_date;
obj.updated_date = p1.updated_date;
obj.free_date = p1.free_date;
obj.whoisserver = p1.whoisserver;
obj.rdapserver = p1.rdapserver;
obj.registrar = p1.registrar;
obj.domains = [];

FOREACH item IN p1.ns;
obj.domains.push({
server = item.server
});
END;

obj.json %]

Văn bản bắt đầu:

[

Văn bản kết thúc:

]

Ví dụ kết quả (RDAP):

[{
"registered": 1,
"rdapserver":"https://rdap.verisign.com/com/v1/domain/a-parser.com",
"query":"a-parser.com",
"free_date":"none",
"domains":[
{
"server":"demi.ns.cloudflare.com"
},
{
"server":"vern.ns.cloudflare.com"
}
],
"registrar":"Squarespace Domains II LLC",
"expire_date":"25.02.2027",
"creation_date":"25.02.2012",
"whoisserver":"",
"updated_date":"10.02.2026"
}]
mẹo

Để các tùy chọn "Prepend text" và "Append text" hiển thị trong Trình chỉnh sửa tác vụ, bạn cần kích hoạt "More options".

Xử lý kết quả

A-Parser cho phép xử lý kết quả trực tiếp trong quá trình cào dữ liệu, trong phần này chúng tôi đưa ra các trường hợp phổ biến nhất cho công cụ cào dữ liệu Net::Whois

Lấy nhà đăng ký tên miền

Khi phản hồi qua WHOIS, trường $p1.data chứa văn bản; khi qua RDAP — chứa JSON. Để lấy nhà đăng ký trong cả hai trường hợp, hãy thêm hai Trình tạo kết quả.

Thêm Result Builders (Trình tạo kết quả) và trong danh sách thả xuống chọn nguồn: $p1.data. Chọn loại: RegEx Match. Trong trường RegEx điền: Registrar:\s*(.+) và lưu vào biến registrarwhois.

Thêm lại Result Builders (Trình tạo kết quả) và trong danh sách thả xuống chọn nguồn: $p1.data. Chọn loại: RegEx Match. Trong trường RegEx điền: "entities"[\s\S]+?"vcardArray"[\s\S]+?"fn"[\s\S]+?"text"[\s\S]+?"([^"]+?)" và lưu vào biến registrarrdap.

Thêm vào Result format (Định dạng kết quả): [% IF registrarrdap == 'none' %]$query - $registrarwhois[% ELSE %]$query - $registrarrdap[% END %] — nếu RDAP không tìm thấy tên (registrarrdap bằng none), giá trị từ WHOIS sẽ được xuất ra, ngược lại là từ RDAP.

Tải xuống ví dụ

Cách nhập ví dụ vào A-Parser

eJyVVNtO20AQ/RVrFEQoJioPfbGEqkATiSpNKAH1wU6lVTxJt6x3ze46EEX5987Y
jh1TpKpP9lzPmdvuYIPWSaMhugzBC/fk7iw69A6ieAd5+Q8RWFxL562wEEIurKMg
cohhij6Kfvwy0pEhxZUolIdwB36bI4UZym5limSUKckrYzPhKWnpBhuhCnaLT4Lb
cdBg2FTkwdVVcKqNxtPgZNF7LtBug4ug1/i8MCbFjSbz0fsenIUdpl/InmjYLxYh
VNBuXPIg5F5+OaiLbIxzscEHw2ylwlY9JmkqMubbS4VHtg6qgvpnA//KGUSaSk/d
FKpC4Ca1qI9aPnO9K6EchsCUJbqxNRnl9FhmKOs40IuhqgsoR1EGf69imhyOuI4F
MUnfWqRHK7yxs5wJkX4HRg+VmuAGleuQ2F4XUqU00uGKgm7rwPddZn/l2Df1HUPR
4F8scWiylNL17FsblZqJWTd2JTPpSeFuTKGp9o8hPCHmh57B1FB3MmOxQakDa3Ba
2xw1L1k7smHeqjpVdMZypNyBM4VdEl5M+DRlwa2vl5k2C1/L5PyN4P6waVGSuA/9
wfnZwfhQBZDoDU+xu7Ww2If/BZQAak97hS6BmLCSZL44/5zAZilsOrRWbLv6le7K
vFpdTT/+mQD9nSXwT858R0SZ6C2NXsn1rL7pQxML/UDPxkzfmCxXyBPXhVK0sA7v
28sZunpBWWhn9zb4poQgHs1bQnSMcl/nFbfcSmL3iTlntGPHqHXKpVDq8X5ybOFA
500+0yNr3yx2eTIgLqpHbbCkW2wvs6TKRS7p3teGDpEk7kT9BDZP5Y7W+be7q7Qc
Vur2fwBx19yZ

Các cài đặt có thể có

Tham sốGiá trị mặc địnhMô tả
Recursive queryCho phép nhận phiên bản WHOIS mở rộng
WHOIS serverCho phép chỉ định máy chủ WHOIS riêng
RDAP serverCho phép chỉ định máy chủ RDAP riêng
Checking by DNSCho phép kiểm tra tên miền đã đăng ký hay chưa dựa trên sự tồn tại của IP theo tên miền
Checking domains by DNS recordKiểm tra IP, nếu tìm thấy trạng thái ALLOCATED thì xác định tên miền đã đăng ký, nếu tùy chọn bị tắt thì việc kiểm tra IP sẽ không diễn ra
Force DNS check for not found domainsBắt buộc kiểm tra nếu tên miền được xác định là chưa đăng ký