PHP抓取備案接口的經(jīng)驗(yàn)分享
檢驗(yàn)一個(gè)域名是否有備案
最近,拿到一個(gè)需求。需要檢驗(yàn)一個(gè)域名是否有備案。最簡(jiǎn)單的方式就是通過(guò)工信部網(wǎng)站上去查拿著域名去查詢就可以了。經(jīng)過(guò)我多次實(shí)驗(yàn). 發(fā)現(xiàn)工信部網(wǎng)站除了驗(yàn)證碼以外,還有對(duì)IP有封禁處理。經(jīng)過(guò)成本對(duì)比,發(fā)現(xiàn)并不適用。于是在互聯(lián)網(wǎng)上找對(duì)應(yīng)的工具。還別說(shuō),還真就找到了一個(gè)。www.lbtool.cn。下面就記錄一下我的抓取過(guò)程。
分析網(wǎng)站
首先先隨意注冊(cè)了個(gè)用戶,然后使用了一下備案查詢的信息。截圖如下
這一看應(yīng)該就是一個(gè)前后端分離的站點(diǎn)。通過(guò)Bearer攜帶用戶信息進(jìn)行傳遞。看到這么一個(gè)簡(jiǎn)單的驗(yàn)證,瞬間就興奮了。于是開(kāi)始模擬請(qǐng)求
開(kāi)始模擬
由于我們這邊是使用PHP進(jìn)行開(kāi)發(fā). 我這里直接使用了PHP. 模擬代碼如下.
<?php function postJSON($url, $post_data = [], $headers = []) { $post_string = json_encode($post_data); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 增加ua. curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); curl_setopt($ch, CURLOPT_TIMEOUT, 3); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); curl_close($ch); return $result; } $domain = count($argv) > 1 ? $argv[1] : 0; # 您的賬戶密鑰. 需要通過(guò)注冊(cè)過(guò)后去獲取一下. $token = ''; if(!$domain) { exit('請(qǐng)輸入域名'); } $resp = postJSON('http://www.lbtool.cn/api/home/domain/record', [ 'domain' => $domain, ], [ 'Authorization: Bearer ' . $token, 'Content-Type: application/json' ]); $resp = json_decode($resp, true); if($resp['code'] != 200) { exit($resp['msg']); } exit(json_encode($resp['data'], JSON_UNESCAPED_UNICODE));
,直接保存為run.php. 就開(kāi)始進(jìn)行測(cè)試。
測(cè)試
直接使用如下命令
php run.php baidu.com
直接就返回了如下的結(jié)果
{"main_num":"京ICP證030173號(hào)","site_num":"京ICP證030173號(hào)-1","unit_name":"北京百度網(wǎng)訊科技有限公司","unit_type":"企業(yè)","home_url":"","pass_date":"2023-08-15"}
ok. 預(yù)期達(dá)到.
缺點(diǎn)
在嘗試過(guò)程中,發(fā)現(xiàn)。如果不攜帶user-agent和content-type. 不會(huì)返回任何信息.
最后
附上注冊(cè)地址http://www.lbtool.cn/login. 上面代碼可以直接另存為就可以了. 經(jīng)測(cè)試目前發(fā)現(xiàn)網(wǎng)站不封任何的IP. 暫無(wú)封禁策略. 也可以用于其他該網(wǎng)站其他查詢信息.
以上就是PHP抓取備案接口的經(jīng)驗(yàn)分享的詳細(xì)內(nèi)容,更多關(guān)于PHP抓取備案接口的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
CodeIgniter安全相關(guān)設(shè)置匯總
這篇文章主要介紹了CodeIgniter安全相關(guān)設(shè)置,需要的朋友可以參考下2014-07-07php json_encode與json_decode詳解及實(shí)例
這篇文章主要介紹了php json_encode與json_decode詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-12-12PHP中最容易忘記的一些知識(shí)點(diǎn)總結(jié)
本篇文章總結(jié)出了一部分,PHP中最容易忘記的一些知識(shí)點(diǎn)。需要的朋友參考下2013-04-04Chrome Web App開(kāi)發(fā)小結(jié)
這篇文章主要分享下自己在開(kāi)發(fā)Web App遇到的問(wèn)題和過(guò)程,以及一些很已經(jīng)(如何)填平的坑。2014-09-09CodeIgniter常用知識(shí)點(diǎn)小結(jié)
這篇文章主要介紹了CodeIgniter常用知識(shí)點(diǎn),包括跳轉(zhuǎn)、常量定義、語(yǔ)言設(shè)置及支持get方法傳參等技巧,需要的朋友可以參考下2016-05-05PHP內(nèi)核學(xué)習(xí)教程之php opcode內(nèi)核實(shí)現(xiàn)
opcode是計(jì)算機(jī)指令中的一部分,用于指定要執(zhí)行的操作, 指令的格式和規(guī)范由處理器的指令規(guī)范指定,通過(guò)本文給大家介紹PHP內(nèi)核學(xué)習(xí)教程之php opcode內(nèi)核實(shí)現(xiàn),感興趣的朋友一起學(xué)習(xí)吧2016-01-01