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

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

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

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

QQ截圖20220419183848

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

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

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

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

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

全球目前域名后綴大概有1000多個(gè),比如我們國(guó)內(nèi)的.cn、.net.cn、.gov.cn、org.cn、hn.cn等等在全球訪問(wèn)內(nèi)其實(shí)多算.cn這一種類型,雖然我們注冊(cè)域名的時(shí)候有.org.cn這種所謂的頂級(jí)域名,實(shí)際上你注冊(cè)的嚴(yán)格意義上講算是域名域名。域名在全球范圍類是有專門的機(jī)構(gòu)維護(hù)的,最知名的莫過(guò)于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)速度和頻次的問(wèn)題

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

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

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

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

QQ截圖20220419184704

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

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

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

轉(zhuǎn)載請(qǐng)注明出處:不使用第三方接口實(shí)現(xiàn)域名whois信息查詢API接口 - 微構(gòu)網(wǎng)絡(luò)
分享:
登封市| 安溪县| 长寿区| 吉安县| 武陟县| 丹巴县| 怀仁县| 绥阳县| 蓬溪县| 通化市| 广汉市| 津市市| 麻城市| 泗水县| 西宁市| 油尖旺区| 马关县| 和平县| 松江区| 定结县| 澎湖县| 普安县| 漳平市| 师宗县| 铁力市| 绥化市| 马边| 泸西县| 宁远县| 焉耆| 新干县| 塘沽区| 肇源县| 洞头县| 雅安市| 会泽县| 辉县市| 长治市| 崇礼县| 柏乡县| 惠州市|