[PHP] 實作查詢網域資訊 Whois 工具

本篇文章更新時間:2020/02/09
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣新台幣 贊助支持。


寫一個 Whois 工具其實不難,含註解可以不超過 60 行。

難的部分是假定使用者不知道什麼叫做「主網域」所以把帶有 HTTP(S) 協定或請求路徑的網址帶入查詢。

這問題會拆兩部分,一個是網址取出網域,另一個是網域要再拆成主網域。

第二部分就是苦力活了!因為目前主網域的結構有很多層次,對應查詢的 Whois server 也可能不同。例如: .tw, com.tw 這兩個頂級域名(TLD)就是不同階層,所以要用什麼邏輯拆解 www.google.com.twgoogle.com.twwww.mxp.twmxp.tw 呢? 目前想到的解只有想辦法去列出組合對應。

經過上述這些之後才是討論處理成可以使用的資料,做管理的部分。

剛把原本系統中用到的功能抽出來做查看網域 Whois 工具 (就是一個沒太多邏輯,非常陽春的版本)

參考資料:

  1. Wiki: Whois 協定
  2. Whois Server 列表
  3. PHP7 驗證網域有效與否的方法
  4. 找主網域的技術方法討論
  5. 網域後綴清單整理GitHub
  6. Gandi 查詢頂級域名後綴
  7. GitHub 上紀錄頂級域名的專案 list-of-top-level-domains
  8. GitHub 上 PHP 查詢 Whois 的工具 php-whois , whois

後記:

  1. Mac 上沒有 telnet 工具,可以改用 nc whois_server 43 來實測。
  2. 懶得對照 Whois Server 的話,直接向 whois.iana.org 查也可以。
  3. 參考資料第六點 Gandi 的用法是改網址後方請求查詢對應頂級域名

Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[///////////____36%_________]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon