whois為什么有時會返回兩個不同的域名狀態

前陣子發現一直想注冊但被別人注冊了的一個域名快要過期了,就想著寫個腳本跑在電腦上,每分鐘檢查一次域名狀態,一旦域名被正式刪除,就發封郵件通知我,這樣就不用頻繁手動檢查域名狀態了。

寫腳本時發現一個有趣的現象,使用whois命令查詢域名狀態時,它給我返回了兩組信息,而且這兩組信息的域名狀態竟然是不一致的,讓人非常好奇,所以特意了解了一下whois的機制,記錄在這里。

$ whois $DOMAIN | grep "Domain Status"Domain Status: pendingDelete https://icann.org/epp#redemptionPeriod
Domain Status: pendingDelete https://icann.org/epp#ok

在whois返回的兩組信息中,第一組來自注冊局(Registry,如VeriSign),第二組來自注冊商(Registrar,如阿里云),注冊商通常擁有比注冊局更加詳細的域名信息。whois會執行遞歸查詢:首先從注冊局查詢域名信息,注冊局返回的信息中包含注冊商的whois服務器,然后再向注冊商查詢域名信息。調用whois命令時加上--verbose參數可以觀察到這個過程:

$ whois $DOMAIN --verbose | grep -E "Using server|Registrar WHOIS Server"
Using server whois.verisign-grs.com.Registrar WHOIS Server: whois.paycenter.com.cn
Using server whois.paycenter.com.cn.
Registrar WHOIS Server: whois.paycenter.com.cn

那么問題來了:注冊商whois服務器是從注冊局查詢得來的,那注冊局whois服務器是從哪里來的呢?答案是硬編碼。whois命令源碼中包含一個tld_serv_list文件,里面包含各頂級域名的注冊局whois服務器,以下是該文件的節選:

...
.com	VERISIGN whois.verisign-grs.com.za.net	whois.za.net
.net	VERISIGN whois.verisign-grs.com.eu.org	whois.eu.org
.za.org	whois.za.org
.org	whois.pir.org.edu	whois.educause.edu
.gov	whois.dotgov.gov
.int	whois.iana.org
.mil	NONE
...

既然whois信息保存在不止一個地方,那么由于數據同步的延遲,有時信息不一致也就不足為奇了,那到底該以哪邊為準呢?就域名狀態而言,應當以注冊局的信息為準,https://lookup.icann.org/en/faq里面提供了各字段的數據源,以下是摘錄:

Result LabelDescriptionSource
Domain Information
NameThe name of the domain name which was entered into the lookup tool.Registry
Internationalized Domain NameThe non-ASCII character name of the domain name which was entered into the lookup tool, if applicable.Registry
Registry Domain IDRegistry-unique identifier for a domain name.Registry
Domain StatusThe status of a domain name registration. Every domain has at least one status code, but they can also have more than one status code. See EPP Status Codes for more info.Registry
NameserversInformation regarding the domain name’s DNS nameservers. To include nameserver unicode name and IP addresses, where applicable.Registry
Dates
DatesMultiple dates may be displayed in the “Dates” section and can include the date when the domain name registration was created, expires, and updated, as applicable.Registry/Registrar
Contact Information
Registrant, Administrative, Technical, and Billing Contact InformationThe contact information of the registrant, administrative, technical, and billing contacts will appear in this section, where applicable.Registrar
Registrar Information
NameThe name of the registrar sponsoring the domain name’s registration.Registrar
IANA IDThe registrar’s IANA ID from the IANA’s Registrar ID registry (https://www.iana.org/assignments/registrar-ids/registrar-ids.xhtml)Registry
Abuse contact emailThe abuse contact email address of the registrar.Registrar
Abuse contact phoneThe abuse contact telephone number of the registrar.Registrar

我關心的是域名狀態這個信息,為了防止從注冊商那里獲取到過時的數據,可以使用-h選項指定只從注冊局獲取數據:

$ whois $DOMAIN -h whois.verisign-grs.com --verbose | grep -E "Using server|Domain Status"
Using server whois.verisign-grs.com.Domain Status: ok https://icann.org/epp#redemptionPeriod

后來又改用js,在js中使用whois模塊時也有類似的問題,需要指定server參數和follow參數來防止對注冊商服務器進行查詢:

whois.lookup(domain, { server: "whois.verisign-grs.com", follow: 0 }, (err, data) => {if (err) return reject(err);let statusLines = data.split("\n").filter(line => /Domain Status/i.test(line)).map(line => {const match = line.match(/Domain Status:\s+(\w+)/i);return match ? match[1] : "";}).sort().join("\n");if (statusLines === "") {statusLines = "(empty)";}resolve(statusLines);
});

不過最終的結局是仍然沒能注冊上這個域名,今天早上醒來,發現域名已經被人注冊了,域名狀態在半夜兩點多發生了變化,從pendingDelete狀態直接變更為了ok。這個域名就是我名字的全拼,有9個字母,不知道有啥稀罕的┑( ̄Д  ̄)┍

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/78800.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/78800.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/78800.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

NGINX ngx_http_addition_module 模塊響應體前后注入內容

一、模塊概述 模塊名稱:ngx_http_addition_module引入版本:自 0.7.9 起支持 addition_types,0.8.29 起支持“*”通配;功能:對符合 MIME 類型的響應,在響應體前后分別插入指定子請求 URI 返回的內容&#x…

半監督學習與強化學習的結合:新興的智能訓練模式

📌 友情提示: 本文內容由銀河易創AI(https://ai.eaigx.com)創作平臺的gpt-4o-mini模型生成,旨在提供技術參考與靈感啟發。文中觀點或代碼示例需結合實際情況驗證,建議讀者通過官方文檔或實踐進一步確認其準…

復習Vue136~180

1.使用create-vue創建項目 npm init vuelatest 項目目錄和關鍵文件: new Vue() 創建一個應用實例 > createApp()、createRouter() createStore() 、將創建實例進行了封裝,保證每個實例的獨立封閉性。 禁用vue2的插件vuter 使用vue3的插件volar scrip…

QT采用mqtt進行通信(17.1)

文章目錄 1.試錯歷程2. qt5.8安裝3. 開始搞了4. 測試連接mqtt broker1.試錯歷程 嘗試過網上說的各種版本,官方庫和第三方庫,試過qt5.9.9, qt5.12, qt5.12.2, qt5.14 等各個版本,都能編譯通過,調用mqtt庫,但是都不能連接成功,真的是試吐了,不知道他們的為什么都能成功,…

西門子PLC結構化編程_水處理系統水泵多備多投

文章目錄 前言一、功能概述二、程序編寫1. 需求分析2. 編寫運行時間累計功能塊3. 創建自定義數據類型1. 時間排序數據類型2. 多備多投數據類型3. 多備多投切換數據類型 4. 編程1. 創建DB數據塊1. 多備多投數據塊2. 多備多投切換數據塊 2. 創建FB功能塊 三、程序調用總結 前言 …

QT:自定義ComboBox

實現效果: 實現combobox的下拉框區域與item區域分開做UI交互顯示。 支持4種實現效果,如下 效果一: 效果二: 效果三: 效果四: 實現邏輯: ui由一個toolbutton和combobox上下組合成,重點在于combobox。 我設置了4種枚舉,ButtonWithComboBox對應效果一;OnlyButt…

VS2022+OpenCasCade配置編譯

一、Open CASCADE Technology介紹及安裝(windows10) Open CASCADE Technology(簡稱OCCT)是一款開源的 3D CAD/CAM/CAE 軟件開發平臺,廣泛應用于工業設計、工程仿真、制造等領域。開源OCC對象庫是一個面向對象C類庫&…

【OSG學習筆記】Day 12: 回調機制——動態更新場景

UpdateCallback 在OpenSceneGraph(OSG)里,UpdateCallback是用來動態更新場景的關鍵機制。 借助UpdateCallback,你能夠實現節點的動畫效果,像旋轉、位移等。 NodeCallback osg::NodeCallback 是一個更通用的回調類&…

全新升級:BRAV-7601-T003高性能無風扇AI邊緣計算系統,助力智能未來!

在數字化與智能化飛速發展的今天,AI邊緣計算正成為各行各業的核心驅動力。BRAV-7601作為一款高性能無風扇AI邊緣計算系統,憑借其強大的硬件配置與豐富的擴展能力,為車路協同、特種車輛車載、機器視覺、醫療影像等領域提供了卓越的解決方案。最…

刪除 Git 遠程記錄并重新設置

刪除 Git 遠程記錄并重新設置 以下是在 Windows 平臺上刪除當前項目的 Git 遠程記錄并重新設置遠程存儲庫的步驟: 步驟一:查看當前遠程倉庫 首先,檢查當前設置的遠程倉庫: git remote -v這會顯示所有已配置的遠程倉庫及其 URL…

有哪些和PPT自動生成有關的MCP項目?

隨著AI技術的快速發展, Model Context Protocol(MCP) 作為一種連接大型語言模型(LLMs)與外部工具的開放協議,正在重塑自動化辦公領域。在PPT自動生成場景中,MCP通過標準化接口實現了AI模型與設計工具、數據源的無縫整合。以下從技術框架、項目案例、應用場景三個維度展開…

PostgreSQL psql 命令和常用的 SQL 語句整理

PostgreSQL psql 命令和常用的 SQL 語句整理 1、登錄PostgreSQL數據庫2、psql 命令3、數據庫操作4、模式操作5、表操作6、數據操作7、索引操作8、視圖操作9、權限操作 1、登錄PostgreSQL數據庫 在系統的命令行界面(如 Windows 的 cmd 或者 PowerShell、Linux 的終端…

【unity游戲開發入門到精通——UGUI】文本輸入控件 —— InputField舊控件

注意:考慮到UGUI的內容比較多,我將UGUI的內容分開,并全部整合放在【unity游戲開發——UGUI】專欄里,感興趣的小伙伴可以前往逐一查看學習。 文章目錄 前言1、文本輸入控件2、InputField舊文本輸入控件組成 一、InputField文本輸入…

獲得ecovadis徽章資格標準是什么?ecovadis評估失敗的風險

EcoVadis徽章資格標準 EcoVadis徽章是對企業在可持續發展(環境、勞工與人權、商業道德、可持續采購)方面表現的認可。獲得徽章需滿足以下條件: 完成評估: 企業必須完成EcoVadis的問卷評估,并提交所有必要文件。 評分…

Python初學 有差異的知識點總結(一)

目錄 一、基礎語法規則 1.注釋 2.代碼編寫 二、基礎語法 1.變量 2.數據類型 3.數據類型的轉換 (1)隱式轉換 (2)顯示轉換 4.標識符 5.運算符 6.字符串 (1)定義 (2)拼接 …

Java面試場景深度解析

Java面試場景深度解析 在互聯網大廠Java求職者的面試中,經常會被問到關于Java項目中的各種技術場景題。本文通過一個故事場景來展示這些問題的實際解決方案。 第一輪提問 面試官:馬架構,歡迎來到我們公司的面試現場。請問您對Java內存模型…

【數據可視化藝術·應用篇】三維管線分析如何重構城市“生命線“管理?

在智慧城市、能源管理、工業4.0等領域的快速發展中,地下管線、工業管道、電力通信網絡等“城市血管”的復雜性呈指數級增長。傳統二維管理模式已難以應對跨層級、多維度、動態變化的管線管理需求。三維管線分析技術應運而生,成為破解這一難題的核心工具。…

Spring-全面詳解(學習總結)

一:概述 1.1 為什么學 解決了兩個主要問題 1. 2 學什么 1.3 怎么學 二:系統架構 作用:web開發、微服務開發、分布式系統開發 容器:用于管理對象 AOP:面向切面編程(不驚動原始程序下對其進行加強) 事…

企業架構之旅(2):解鎖TOGAF ADM

文章目錄 一、什么是 TOGAF ADM二、TOGAF ADM 的關鍵階段架構愿景(Phase A)業務架構(Phase B)信息系統架構(Phase C)技術架構(Phase D)機會與解決方案(Phase E&#xff0…

MySQL 中 SQL 語句的詳細執行過程

MySQL 中 SQL 語句的詳細執行過程 當一條 SQL 語句在 MySQL 中執行時,它會經歷多個階段的處理。下面我將詳細描述整個執行流程: 1. 連接階段 (Connection) 客戶端與 MySQL 服務器建立連接服務器驗證用戶名、密碼和權限連接器負責管理連接狀態和權限驗…