將android 設(shè)備作為熱點后重定向

項目需要最近需要做一個功能,就是將android平板作為熱點,連接到該臺平板的設(shè)備在連接后用瀏覽器打輸入地址后都會自動跳轉(zhuǎn)到我們指定的一個頁面。

最開始做的時候一點頭緒也沒有,后來冷靜下來就想什么事情都不可能一簇而就,咱們就一步一步的來吧。

首先既然要控制用戶在瀏覽器上輸入網(wǎng)址后跳轉(zhuǎn)到我們指定的地址,那么問題來了 :

輸入 URL 到頁面加載完的過程中都發(fā)生了什么事情,我們來看下下面這個圖

Paste_Image.png

不難看出,加載url過程中經(jīng)歷了不少步驟,主要步驟可以總結(jié)為下面幾步:

1.瀏覽器查詢緩存,如果緩存存在跳到第9步

2.瀏覽器詢問操作系統(tǒng)服務(wù)器的IP地址

3.操作系統(tǒng)做DNS查詢,返回IP地址給瀏覽器

4.瀏覽器打開對服務(wù)器的TCP連接

5.瀏覽器通過TCP連接發(fā)送HTTP請求

6.瀏覽器接收HTTP響應(yīng)并且可能關(guān)掉TCP連接,或者是重新使用連接處理新請求

7.瀏覽器檢查HTTP響應(yīng)是否為一個重定向(3xx 結(jié)果狀態(tài)碼 ),一個驗證請求(401),錯誤(4xx 5xx)等等,這些都是不同響應(yīng)的正常處理(2xx)

8.如果響應(yīng)可緩存,將存入緩存

9.瀏覽器解碼響應(yīng)

10.瀏覽器決定如何處理這些響應(yīng)(例如,它是HTML頁面,一張圖片,一段音樂)

11.瀏覽器展現(xiàn)響應(yīng),對未知類型還會彈出下載對話框(現(xiàn)在一般不會彈出了,用戶對瀏覽器設(shè)置而定).

所以不難看出在輸入url后瀏覽器做的第一件事就是域名解析:

將對應(yīng)的域名解析成ip的過程。解析過程如下圖所示:

Paste_Image.png

而看到這里其實后面的一些步驟可以不用繼續(xù)看下去了,當(dāng)然大家有興趣的話可以去研

究下.如果想要達到文章開始所說的效果的話就需要在本地dns服務(wù)器解析過程中下功夫

了,因為作為熱點的平板可以看成一個路由,在這里設(shè)置一道屏障將所有的數(shù)據(jù)進行過

濾重新處理。那既然方案有了那具體該怎么做了,用過Linux操作系統(tǒng)的都知道又一個

iptables防火墻的東西,而android手機底層恰好是Linux,所以這個方法是可行的

(由于android系統(tǒng)開發(fā)性不是所有的廠商都添加了iptables模塊).關(guān)于iptables的知

識可以參考這篇文章[iptables](http://seanlook.com/2014/02/23/iptables-
understand/).

通過iptables編寫規(guī)則,進行數(shù)據(jù)重定向達到我們開始的目的,具體代碼如下.

Paste_Image.png

這里只是貼出了關(guān)鍵的代碼,大家如果想實現(xiàn)的話可以自己嘗試下,如果對于上面的有意見,歡迎大家提出共同學(xué)習(xí)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容