本篇文章更新時間:2020/02/09
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
寫一個 Whois 工具其實不難,含註解可以不超過 60 行。
難的部分是假定使用者不知道什麼叫做「主網域」所以把帶有 HTTP(S) 協定或請求路徑的網址帶入查詢。
這問題會拆兩部分,一個是網址取出網域,另一個是網域要再拆成主網域。
第二部分就是苦力活了!因為目前主網域的結構有很多層次,對應查詢的 Whois server 也可能不同。例如: .tw
, com.tw
這兩個頂級域名(TLD)就是不同階層,所以要用什麼邏輯拆解 www.google.com.tw
為 google.com.tw
與 www.mxp.tw
為 mxp.tw
呢? 目前想到的解只有想辦法去列出組合對應。
經過上述這些之後才是討論處理成可以使用的資料,做管理的部分。
剛把原本系統中用到的功能抽出來做查看網域 Whois 工具 (就是一個沒太多邏輯,非常陽春的版本)
參考資料:
- Wiki: Whois 協定
- Whois Server 列表
- PHP7 驗證網域有效與否的方法
- 找主網域的技術方法討論
- 網域後綴清單整理 ( GitHub )
- Gandi 查詢頂級域名後綴
- GitHub 上紀錄頂級域名的專案 list-of-top-level-domains
- GitHub 上 PHP 查詢 Whois 的工具 php-whois , whois
後記:
- Mac 上沒有 telnet 工具,可以改用 nc whois_server 43 來實測。
- 懶得對照 Whois Server 的話,直接向 whois.iana.org 查也可以。
- 參考資料第六點 Gandi 的用法是改網址後方請求查詢對應頂級域名