『原創』再談用 php 實現域名 whois 信息查詢


        之前為了做 《plog.cn 1-6位 超期待刪 短域名 篩查工具》,特地在 plog.cn 服務器上部署了一個 whois 查詢小工具。PS:使用方法 http://plog.cn/whois/yourdomain.com

        為了實現這個 whois 小工具,查了足足有兩個小時的資料,網上有很多種 whois查詢 的php實現,大致實現的思路無不例外以下幾種:

        1.通過http調用 xinnet或者是萬網的 whois查詢接口查詢,而后將結果輸出到頁面,博客 http://blog.163.com/mengqing_dao/blog/static/133520513201162634227882/ 所描述的方法,就是這種最簡單的,通過間接調用新網 whois查詢接口的實現方法

        2.直接通過讀取 whois服務器,實現域名的查詢。文章 http://dev.meettea.com/show-78-1.html 闡述的方法,就是根據被查詢域名的后綴名,訪問不同的 whois服務器,查詢結果

        對應的 域名后綴 -> whois 服務器 的映射關系大致如下:

    1. 'com'=>'whois.internic.net',   
    2. 'net'=>'whois.internic.net',   
    3. 'org'=>'whois.pir.org',   
    4. 'asia'=>'whois.crsnic.net'
    5. 'cn'=>'whois.cnnic.net.cn',   
    6. 'cc'=>'whois.nic.cc',   

        對於這種方法,雖然實現起來很簡單,但是對於在Godaddy.com平台或者是國內的廈門易名網注冊的 域名來說,只能查到一個大概,而無法查到具體真正的 domain 的信息,如下:

godaddy注冊的域名

在godday注冊的域名的whois信息

在易名網注冊的域名的whois信息

在廈門易名網注冊的域名的whois信息

        所以,無論上面兩種方法,都不能比較完善的實現 whois 的查詢功能。

        這時候 Jay感覺到,僅僅是 whois 這件小事,也需要用牛刀,我們需要一個完善 whois查詢組件。

        此時的 Jay立刻打開 google.com,搜索 php whois,果不其然!

        在 百度中,搜了半天,出來的都是一些外門奇方,google一搜,就立馬出現一套完整的 whois client 的 php 實現,項目名稱就叫《phpWhois》,項目主頁:http://www.phpwhois.org/ ,於是立馬 download 下來,根據文檔中的 demo,很快就把 whois 的查詢功能實現了。

        下面是調用 phpWhois 組件,實現 whois信息查詢的核心代碼部分:

<pre><?php
include('whois_inc/whois.main.php');
$whois =newWhois();
$result = $whois->Lookup($domain);
$output = implode("\n", $result['rawdata']);
echo $output;?></pre>

        在這里<pre></pre>標簽的作用是定義預格式化的文本,就是將 whois 查詢到的 raw text 按原來的文本排版格式直接輸出。

DomainName: lxfq.cn
ROID:20130114s10001s62921725-cn
DomainStatus: ok
Registrant ID:000046dbRegistrant:黎軍RegistrantContactEmail:2673732891@qq.com
SponsoringRegistrar:北京網尊科技有限公司NameServer: ns1.vtopchina.cn
NameServer: ns2.vtopchina.cn
RegistrationDate:2013-01-1404:02:16ExpirationDate:2014-01-1404:02:16
DNSSEC:unsigned

總結:

        whois雖然僅僅只是一種最簡單的基於 tcp 的查詢協議,但是很多工作,即便我們實現起來也非常簡單,如果有現成的 php組件可以用的話,就應該盡量避免自己重復發明一個輪子。倒不是說不可以,只是重新實現一種協議,即便是最簡單的那種,也會遇到很多的例外。

        就像 phpWhois 組件,爭對godaddy類似這種的例外情況,就處理的非常好。

        所以,專業的事情,還是讓專業的開源組件去實現吧!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM