国产又猛又爽又黄视频|在线观看人成视频免费|少妇高潮太爽了在线视频|911国产免费无码专区|特黄做受又大又粗又长大片|欧美一级二级免费在线观看|日日夜人人澡人人澡人人看免|欧洲午夜精品一级毛片在线播放

不使用第三方接口實(shí)現(xiàn)域名whois信息查詢API接口

2022-04-19 18:48 欄目:技術(shù)開發(fā) 查看(8746)

最近想給微構(gòu)網(wǎng)絡(luò)網(wǎng)站巡查系統(tǒng)增加一個(gè)小功能,就是域名狀態(tài)提醒,主要需要實(shí)時(shí)獲取指定域名的狀態(tài)和到期時(shí)間,本質(zhì)上就是域名的whois信息。域名的whois的信息隨便在網(wǎng)上一查就能查到,尤其是那些域名注冊(cè)商其實(shí)都提供了這么一個(gè)功能。

然而很少平臺(tái)提供查詢接口,因?yàn)樾枰獙?shí)時(shí)查詢,因此在第三方網(wǎng)頁(yè)上的查詢結(jié)果不可以直接用于我們需要的數(shù)據(jù),當(dāng)然也可以通過爬取抓取的方式,但這種方式嚴(yán)格來講是不合規(guī)的。首先想到的是在各大API平臺(tái)搜索,結(jié)果主流API開放平臺(tái)幾乎都提供域名whois查詢接口。但是,但是收費(fèi)貌似不便宜,每次查詢要小幾分錢,別小看這個(gè)幾分錢,因?yàn)槲覀冃枰@取的是實(shí)時(shí)的數(shù)據(jù),因此查詢量是非常大的,這么相比起來其實(shí)還是需要一點(diǎn)成本的。比如下圖就是阿里云云市場(chǎng)某服務(wù)商的whois查詢接口:

QQ截圖20220419183848

作為開發(fā)者,雖然很多時(shí)候不想重復(fù)造輪子,然而我們還是決定自己造一個(gè)這樣的輪子。理由很簡(jiǎn)單,我們的經(jīng)驗(yàn)告訴我們,實(shí)現(xiàn)這個(gè)需求工作量應(yīng)該不是很大,而且自己弄的東西就是感覺香。其實(shí)獲取域名的whois信息,流程是非常簡(jiǎn)單的。直接貼出核心代碼:

$socket = @fsockopen($whois_server, 43);
fputs($socket, "{$domain}\r\n");
$response = '';
while (!feof($socket)) {
    $response .= fgets($socket, 128);
}
fclose($socket);

沒錯(cuò),就是上面這么一點(diǎn)代碼就可以實(shí)現(xiàn)域名的whois查詢,上面的$whois_server就是各種域名注冊(cè)局whois查詢服務(wù)器的主機(jī)名(也就是地址),$domain就是我們需要查詢的域名,如csweigou.com。

某些拿來主義者可能看到這里,就會(huì)覺得:“臥槽,原來這么簡(jiǎn)單”。實(shí)際上并沒有,要應(yīng)用到自己的項(xiàng)目,光上面的核心代碼是遠(yuǎn)遠(yuǎn)不夠的。據(jù)我們從頭完全實(shí)踐發(fā)現(xiàn)至少需要解決如下幾個(gè)問題。

1、域名注冊(cè)局的whois查詢服務(wù)器怎么獲取的問題

全球目前域名后綴大概有1000多個(gè),比如我們國(guó)內(nèi)的.cn、.net.cn、.gov.cn、org.cn、hn.cn等等在全球訪問內(nèi)其實(shí)多算.cn這一種類型,雖然我們注冊(cè)域名的時(shí)候有.org.cn這種所謂的頂級(jí)域名,實(shí)際上你注冊(cè)的嚴(yán)格意義上講算是域名域名。域名在全球范圍類是有專門的機(jī)構(gòu)維護(hù)的,最知名的莫過于icann了;我們國(guó)內(nèi)相應(yīng)的就是中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC)。所有的查詢服務(wù)器我們都可以在這個(gè)頁(yè)面查到詳細(xì)數(shù)據(jù):

https://www.iana.org/domains/root/db

這個(gè)數(shù)據(jù)列表除了這些數(shù)據(jù),還包括各種后綴域名的注冊(cè)局信息。如下圖所示:

QQ截圖20220419183651

2、查詢響應(yīng)速度和頻次的問題

通過實(shí)踐發(fā)現(xiàn),注冊(cè)局查詢服務(wù)器在境外的查詢速度會(huì)很慢,比如最常見的com域名查詢就經(jīng)常需要超過1秒的時(shí)間,實(shí)踐證明通過境外服務(wù)器進(jìn)行查詢會(huì)快很多,因此怎么做就不用細(xì)說了。此外,不同查詢服務(wù)器對(duì)查詢的頻次是有限制的,單位時(shí)間查詢次數(shù)過多會(huì)被限制查詢。至于如何突破這種限制,相信你能有耐心看到這里來說明自己肯定是開發(fā)者,因此也不是啥難事了。

3、查詢得到的whois的信息需要進(jìn)行數(shù)據(jù)清洗的問題

不同的查詢服務(wù)器得到的數(shù)據(jù)字段是不一樣的,所以需要有點(diǎn)耐心去做查詢得到的數(shù)據(jù)清理,清理成為我們對(duì)于多種不同域名查詢得到的統(tǒng)一字段。比如我們最需要的域名創(chuàng)建時(shí)間、更新時(shí)間、過期時(shí)間、域名狀態(tài)等。如何進(jìn)行數(shù)據(jù)清理,在我看來應(yīng)該是作為開發(fā)者的基本功。這里插一句,一開始筆者是直接找github上人家寫的清理邏輯,搜索了一些庫(kù)瀏覽后發(fā)現(xiàn),這些庫(kù)要么太臃腫,要么太簡(jiǎn)單不能實(shí)現(xiàn)完整功能;因此最終還是自己動(dòng)手寫了一遍。

最后分享一張以我們微構(gòu)網(wǎng)絡(luò)網(wǎng)站域名csweigou.com為例通過該成果接口查詢的結(jié)果吧:

QQ截圖20220419184704

與我們的項(xiàng)目經(jīng)理聯(lián)系
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流

轉(zhuǎn)載請(qǐng)注明出處:不使用第三方接口實(shí)現(xiàn)域名whois信息查詢API接口 - 微構(gòu)網(wǎng)絡(luò)
分享: