2024国产成人精品免费视频|日本免费一区二区三区毛片|久久97超碰色中文字幕|亚洲天堂a中文字幕

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

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

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

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

QQ截圖20220419183848

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

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

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

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

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

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

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

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

QQ截圖20220419183651

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

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

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

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

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

QQ截圖20220419184704

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

我們在微信上24小時期待你的聲音

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

轉(zhuǎn)載請注明出處:不使用第三方接口實現(xiàn)域名whois信息查詢API接口 - 微構(gòu)網(wǎng)絡(luò)
分享:
米林县| 炉霍县| 重庆市| 邵东县| 白玉县| 弋阳县| 涿州市| 石家庄市| 奉节县| 固原市| 洛隆县| 东乡族自治县| 白水县| 兴山县| 宁安市| 化州市| 资溪县| 黄大仙区| 南京市| 兴安县| 吴忠市| 九台市| 霍山县| 彭阳县| 丰原市| 鹤庆县| 巴彦淖尔市| 江安县| 罗田县| 濮阳县| 宽甸| 定襄县| 土默特右旗| 长宁县| 鹤峰县| 绍兴县| 南宫市| 遂平县| 沙河市| 富蕴县| 南平市|