一種共享上網的檢測方法及裝置與流程
2023-09-23 09:28:05
本發明涉及網際網路通信技術領域,尤其涉及一種共享上網的檢測方法及裝置。
背景技術:
通常,用戶為了節省成本以及保護內部網絡,會在一個集體(例如學校或企業)內部建立一個區域網,在區域網內採用共享上網的方式上網,即多個內網(區域網)用戶通過路由設備進行網絡地址轉換後,採用同一個公網ip地址連接外網(廣域網)。而提供外網連接服務的運營商出於利益和管理方面的考慮,會對共享上網進行控制,其中,首先需要對共享上網進行檢測。
現有技術中,外網管理者通常在需要進行管理的區域網與外網之間布置用於檢測共享上網的檢測裝置,對用戶的共享上網進行檢測。共享上網的檢測方法包括多種,例如,第一種方法為ip(internetprotocol,網絡之間互聯的協議)報文id(identifier,頭部標識符)特徵檢測方法,主要是由同一終端發出的ip報文的報文頭部的id值呈線性增長,通過檢測接收到的ip報文的報文頭部的id值的變化曲線,即可判斷出發出ip報文的終端所在網絡是否存在共享上網的現象。但這種檢測方法只對安裝windows系統的終端有效,對於安裝linux系統的終端,由於其發送的ip報文的報文頭部的id值在多條流之間不存在線性關係,容易導致誤識別。第二種方法為用戶代理(user-agent)特徵檢測技術,主要是在http(hypertexttransferprotocol,超文本傳輸協議)流中,報文頭部的user-agent欄位會攜帶終端的系統信息,採用該系統信息可以區分終端。但這種方法中,user-agent欄位中終端的系統信息可能並不是終端真正的系統信息,同樣容易導致誤識別。第三種方法為tcp時間戳檢測方法,主要是每一個終端均具有一個時間戳時鐘,該時間戳時鐘在相應終端開啟之後,取一個初始值後線性增長,因此每個終端發送的tcp報文攜帶的時間戳均不一樣,由此可對終端進行區分。不過這種方法對於安裝linux系統的終端比較有效,而安裝windows系統的終端發出的報文不攜帶時間戳,無法採用該方法進行檢測,即該方法具有一定的局限性。
綜上可知,現有的共享上網的檢測方法,存在使用局限性和誤識別的問題。
技術實現要素:
本發明提供了一種共享上網的檢測方法及裝置,以解決現有的共享上網的檢測方法,存在使用局限性和誤識別的問題。
第一方面,本發明提供了一種共享上網的檢測方法,該檢測方法包括:在預設檢測時長內,檢測到目標區域網中用戶終端發送的報文為超文本傳輸協議http報文後,劫持所述http報文的流量;向所述用戶終端推送探測頁面,通過所述探測頁面獲取所述用戶終端的內網ip地址和相應的公網ip地址,所述探測頁面攜帶有獲取用戶終端的內網ip地址和相應公網ip地址的腳本;分析所述預設檢測時長內獲取到的公網ip地址對應的內網ip地址的數量,根據分析的結果確定所述目標區域網中共享上網的檢測結果。
進一步,向所述用戶終端推送探測頁面之前,該檢測方法還包括:確定所述http報文的源ip地址;判斷在所述預設檢測時長內向所述源ip地址推送所述探測頁面的次數是否大於預設閾值;如果是,則將記錄的向所述源ip地址推送所述探測頁面的次數更新為零,以及停止在所述預設檢測時長內對所述目標區域網進行共享上網檢測的後續操作;或,如果否,則執行後續向所述用戶終端推送探測頁面的操作。
進一步,向所述用戶終端推送探測頁面之後,該方法還包括:更新記錄的向所述源ip地址推送所述探測頁面的次數。
進一步,檢測到目標區域網中用戶終端發送的報文為超文本傳輸協議http報文後,劫持所述http報文的流量之前,該檢測方法還包括:實時檢測所述目標區域網的用戶終端發送的報文是否為http報文;如果是,則執行後續劫持所述http報文的流量的操作;或,如果否,則重新執行檢測所述目標區域網的用戶終端發送的報文是否為http報文的操作,直至所述預設檢測時長結束。
進一步,根據分析的結果確定所述目標區域網中共享上網的檢測結果的過程,具體包括:如果所述公網ip地址對應的內網ip地址的數量大於或等於預設數量,則確定所述目標區域網中存在共享上網;或,如果所述公網ip地址對應的內網ip地址的數量小於預設數量,則確定所述目標區域網中不存在共享上網。
第二方面,本發明還提供了一種共享上網的檢測裝置,該檢測裝置包括:流量劫持模塊,用於在預設檢測時長內,檢測到目標區域網中用戶終端發送的報文為超文本傳輸協議http報文後,劫持所述http報文的流量;ip地址獲取模塊,用於向所述用戶終端推送探測頁面,通過所述探測頁面獲取所述用戶終端的內網ip地址和相應的公網ip地址,所述探測頁面攜帶有獲取用戶終端的內網ip地址和相應公網ip地址的腳本;分析模塊,用於分析所述預設檢測時長內獲取到的公網ip地址對應的內網ip地址的數量,根據分析的結果確定所述目標區域網中共享上網的檢測結果。
進一步,該檢測裝置還包括:源ip地址確定模塊,用於確定所述http報文的源ip地址;判斷模塊,用於判斷在所述預設檢測時長內向所述源ip地址推送所述探測頁面的次數是否大於預設閾值;如果是,則將記錄的向所述源ip地址推送所述探測頁面的次數更新為零,以及停止在所述預設檢測時長內對所述目標區域網進行共享上網檢測的後續操作;或,如果否,則執行後續向所述用戶終端推送探測頁面的操作。
進一步,該檢測裝置還包括:計錄更新模塊,用於更新記錄的向所述源ip地址推送所述探測頁面的次數。
進一步,該檢測裝置還包括:報文檢測模塊,用於實時檢測所述目標區域網的用戶終端發送的報文是否為http報文;如果是,則執行後續劫持所述http報文的流量的操作;或,如果否,則重新執行檢測所述目標區域網的用戶終端發送的報文是否為http報文的操作,直至所述預設檢測時長結束。
進一步,所述分析模塊用於根據分析的結果確定所述目標區域網中共享上網的檢測結果,具體包括:所述分析模塊用於執行下述操作:如果所述公網ip地址對應的內網ip地址的數量大於或等於預設數量,則確定所述目標區域網中存在共享上網;或,如果所述公網ip地址對應的內網ip地址的數量小於預設數量,則確定所述目標區域網中不存在共享上網。
本發明實施例提供的技術方案可以包括以下有益效果:本發明提供了一種共享上網的檢測方法及裝置,該檢測方法中,通過劫持用戶終端發送的每一個http報文的流量,向發送該http報文的用戶終端推送攜帶有獲取用戶終端的內網ip地址和相應公網ip地址的腳本的探測頁面,通過該探測頁面獲取發送該http報文的用戶終端的內網ip地址和相應的公網ip地址,之後通過分析預設檢測時長內獲取到的公網ip地址對應的內網ip地址的數量,即可確定出預設檢測時長對應的時間段內,該公網ip地址對應的目標區域網中是否存在共享上網的情況。該檢測方法,對於安裝windows系統和linux系統或其他系統的用戶終端均適用,不存在使用局限性,也不會發生誤識別的問題,適用性更好。
附圖說明
為了更清楚地說明本申請的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,對於本領域普通技術人員而言,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例提供的一種共享上網的檢測方法的流程示意圖;
圖2為本發明實施例提供的一種共享上網的檢測裝置的結構框圖。
具體實施方式
結合背景技術可知,網絡運營商為了對某個區域網中共享上網的情況進行檢測和管理,會在該區域網和外網之間的網絡中布置用於檢測共享上網的檢測裝置,採用該檢測裝置對該區域網中的共享上網情況進行檢測和管理。基於此,本發明提供的共享上網的檢測方法中,將用於檢測共享上網的檢測裝置,採用旁路或串行的方式,接入目標區域網與外網之間的通信網絡中,這樣,目標區域網中任意一個用戶終端發送至外網的任意一個報文,均會先被發送至該檢測裝置,之後通過該檢測裝置發送至外網。本文中,將當前進行檢測的區域網定義為目標區域網。目標區域網的數量可以為一個,也可以為多個,即可以採用該檢測裝置同時對一個或多個目標區域網中共享上網的情況進行檢測。
在對任意一個目標區域網進行共享上網檢測時,通常是針對一段時長內,該目標區域網中共享上網的情況進行檢測,因此,在對該目標區域網中共享上網的情況進行檢測之前,通常會預先設置一個預設檢測時長,該預設檢測時長可以根據實際需要隨意進行設定,在預設檢測時長內對該目標區域網中共享上網的情況進行檢測;或者,也可以以預設檢測時長為周期,持續對該目標區域網中共享上網的情況進行檢測。下面以一個預設檢測時長為例,詳細介紹本發明提供的共享上網的檢測方法的具體實施例。
參見圖1,圖1示出的是本發明實施例提供的一種共享上網的檢測方法的流程示意圖。結合圖1可知,該檢測方法包括:
步驟101、在預設檢測時長內,檢測到目標區域網中用戶終端發送的報文為超文本傳輸協議http報文後,劫持所述http報文的流量。
結合前述背景技術內容可知,如果能夠確定目標區域網中存在多個用戶終端使用同一個公網ip地址訪問外網,即可確定該目標區域網中存在共享上網的情況。而如果目標區域網中存在多個用戶終端使用同一個公網ip地址訪問外網,由於每一個用戶終端均會對應一個內網ip地址,該公網ip地址就會對應多個內網ip地址。所以,只要確定該目標區域網對應的公網ip地址是否對應多個內網ip地址,即可確定該目標區域網中是否存在共享上網的情況。由此,只要採用布置於目標區域網與外網之間網絡中的檢測裝置,對該區域網中用戶終端的內網ip地址和公網ip地址進行分析,就可以確定出該目標區域網中共享上網的情況。
在webrtc(webreal-timecommunication,網頁實時通信)技術中,通過javascript接口可以獲取到用戶終端的內網ip地址和相應公網ip地址,基於此,本發明實施例採用向目標區域網中用戶終端,推送帶有javascript腳本的探測頁面的方法,獲取用戶終端的內網ip地址和相應公網ip地址,其中,javascript腳本能夠通過webrtc技術獲取用戶終端的內網ip地址和相應公網ip地址。而想要實現向用戶終端推送帶有腳本的探測頁面,並且讓腳本執行,必須劫持通過瀏覽器訪問網頁的http報文的流量,因此,在對目標區域網中共享上網的情況進行檢測時,需要劫持該目標區域網中用戶終端發送的http報文的流量。
具體實施時,想要檢測某個時間段內,目標區域網中共享上網的情況時,在檢測裝置中將檢測開始時間設置為該時間段的起始時間,將預設檢測時長設置為該時間段的時長。之後,在預設檢測時長內,實時檢測該目標區域網中用戶終端發送的每一個報文是否為http報文;如果檢測到該目標區域網中用戶終端發送的該報文為http報文,則劫持該http報文的流量;或,如果檢測到該目標區域網中用戶終端發送的該報文不是http報文,則重新執行檢測該目標區域網的用戶終端發送的報文是否為http報文的操作,直至預設檢測時長結束。總之,想要檢測預設檢測時長內,目標區域網中共享上網的情況,首先需要劫持該段預設檢測時長內,該目標區域網中用戶終端發送的每一個http報文的流量。如果目標區域網包括多個,則在預設檢測時長內,劫持每一個目標區域網中用戶終端發送的每一個http報文的流量。
步驟102、向所述用戶終端推送探測頁面,通過所述探測頁面獲取所述用戶終端的內網ip地址和相應的公網ip地址,所述探測頁面攜帶有獲取用戶終端的內網ip地址和相應公網ip地址的腳本。
檢測裝置劫持到任意一個http報文的流量後,向發送該http報文的用戶終端推送探測頁面,該探測頁面攜帶有獲取用戶終端的內網ip地址和相應公網ip地址的腳本(例如能夠通過webrtc技術獲取用戶終端的內網ip地址和相應公網ip地址的javascript腳本),將該探測頁面推送至該用戶終端後,該探測頁面攜帶的腳本自動被執行,腳本被執行後獲取到該用戶終端的內網ip地址和相應的公網ip地址,並將獲取到的內網ip地址和相應的公網ip地址發送至檢測裝置;並且該探測頁面攜帶的腳本中記錄有該用戶終端想要訪問的網站的網址,腳本被執行後獲取到該用戶終端的內網ip地址和相應的公網ip地址之後,會將該用戶終端的瀏覽頁面重定向至該用戶終端想要訪問的網站的頁面,不會影響用戶訪問外網的使用效果。這樣,檢測裝置通過該探測頁面就可以獲取到發送每一個http報文的用戶終端的內網ip地址和相應的公網ip地址。
在一些可選的實施例中,為了更加精確高效的檢測出目標區域網中共享上網的情況,會限制向每個源ip地址推送探測頁面的次數,避免向同一個源ip地址推送探測頁面的次數太多,造成對同一源ip地址的重複分析計算和減少對更多源ip地址的分析計算,影響共享上網的檢測效率和精確度。在對目標區域網中共享上網的情況進行檢測時,會在劫持到任意一個http報文,向發送該http報文的用戶終端推送探測頁面之前,先確定該http報文的源ip地址,判斷在預設檢測時長內向該源ip地址推送探測頁面的次數是否大於預設閾值;如果是,則將記錄的向該源ip地址推送所述探測頁面的次數更新為零,以及停止在所述預設檢測時長內對該目標區域網進行共享上網檢測的後續操作;或,如果否,則執行後續向發送該http報文的用戶終端推送探測頁面的操作,並在向該用戶終端推送探測頁面之後,更新記錄的向該源ip地址推送探測頁面的次數,即將記錄的向該源ip地址推送探測頁面的次數增加1。其中,預設閾值可以根據實際需要進行設定,如果希望檢測更加精確,該預設閾值可以設置為較小的值,例如2,但不能小於2;如果對於檢測結果的精度沒有限制,只需初略了解目標區域網中是否可能存在共享上網,則該預設閾值的值可以設置為稍大的值,例如5~10中任意一個值。
步驟103、分析所述預設檢測時長內獲取到的公網ip地址對應的內網ip地址的數量,根據分析的結果確定所述目標區域網中共享上網的檢測結果。
在預設檢測時長內,檢測裝置獲取到發送每一個http報文的用戶終端的內網ip地址和公網ip地址後,通過分析該預設檢測時長內獲取到的每一個公網ip地址對應的內網ip地址的數量,就可以確定出在預設檢測時長對應的時間段內,該公網ip地址對應的目標區域網中共享上網的情況。如果某一個公網ip地址對應的內網ip地址的數量大於或等於預設數量,則確定該公網ip地址對應的目標區域網中存在共享上網;或,如果該公網ip地址對應的內網ip地址的數量小於預設數量,則確定該公網ip地址對應的目標區域網中不存在共享上網,其中,預設數量可以設置為2。例如,如果某一個公網ip地址對應的內網ip地址的數量為3,則可以確定從檢測開始後,預設檢測時長對應的時間段內,該公網ip地址對應的目標區域網中存在共享上網的情況。如果某一個公網ip地址對應的內網ip地址的數量為1,則可以確定從檢測開始後,預設檢測時長對應的時間段內,該公網ip地址對應的目標區域網中不存在共享上網的情況。
本發明實施例提供的共享上網的檢測方法中,通過劫持用戶終端發送的每一個http報文的流量,向發送該http報文的用戶終端推送攜帶有獲取用戶終端的內網ip地址和相應公網ip地址的腳本的探測頁面,通過該探測頁面獲取發送該http報文的用戶終端的內網ip地址和相應的公網ip地址,之後通過分析預設檢測時長內獲取到的公網ip地址對應的內網ip地址的數量,即可確定出預設檢測時長對應的時間段內,該公網ip地址對應的目標區域網中是否存在共享上網的情況。該檢測方法,對於安裝windows系統和linux系統或其他系統的用戶終端均適用,不存在使用局限性,也不會發生誤識別的問題,適用性更好。
與上述共享上網的檢測方法相對應,本發明還提供了一種共享上網的檢測裝置。
參見圖2,圖2示出的是本發明實施例提供的一種共享上網的檢測裝置的結構框圖。結合圖2可知,該檢測裝置包括:流量劫持模塊201,用於在預設檢測時長內,檢測到目標區域網中用戶終端發送的報文為超文本傳輸協議http報文後,劫持所述http報文的流量;ip地址獲取模塊202,用於向所述用戶終端推送探測頁面,通過所述探測頁面獲取所述用戶終端的內網ip地址和相應的公網ip地址,所述探測頁面攜帶有獲取用戶終端的內網ip地址和相應公網ip地址的腳本;分析模塊203,用於分析所述預設檢測時長內獲取到的公網ip地址對應的內網ip地址的數量,根據分析的結果確定所述目標區域網中共享上網的檢測結果。
進一步,該檢測裝置還包括:源ip地址確定模塊204,用於確定所述http報文的源ip地址;判斷模塊205,用於判斷在所述預設檢測時長內向所述源ip地址推送所述探測頁面的次數是否大於預設閾值;如果是,則將記錄的向所述源ip地址推送所述探測頁面的次數更新為零,以及停止在所述預設檢測時長內對所述目標區域網進行共享上網檢測的後續操作;或,如果否,則執行後續向所述用戶終端推送探測頁面的操作。
進一步,該檢測裝置還包括:計錄更新模塊206,用於更新記錄的向所述源ip地址推送所述探測頁面的次數。
進一步,該檢測裝置還包括:報文檢測模塊207,用於實時檢測所述目標區域網的用戶終端發送的報文是否為http報文;如果是,則執行後續劫持所述http報文的流量的操作;或,如果否,則重新執行檢測所述目標區域網的用戶終端發送的報文是否為http報文的操作,直至所述預設檢測時長結束。
進一步,所述分析模塊203用於根據分析的結果確定所述目標區域網中共享上網的檢測結果,具體包括:所述分析模塊用於執行下述操作:如果所述公網ip地址對應的內網ip地址的數量大於或等於預設數量,則確定所述目標區域網中存在共享上網;或,如果所述公網ip地址對應的內網ip地址的數量小於預設數量,則確定所述目標區域網中不存在共享上網。
本發明實施例提供的共享上網的檢測裝置,可以實施上述共享上網的檢測方法的每一個具體步驟,通過劫持用戶終端發送的每一個http報文的流量,向發送該http報文的用戶終端推送攜帶有獲取用戶終端的內網ip地址和相應公網ip地址的腳本的探測頁面,通過該探測頁面獲取發送該http報文的用戶終端的內網ip地址和相應的公網ip地址,之後通過分析預設檢測時長內獲取到的公網ip地址對應的內網ip地址的數量,即可確定出預設檢測時長對應的時間段內,該公網ip地址對應的目標區域網中是否存在共享上網的情況。該檢測裝置,對於安裝windows系統和linux系統或其他系統的用戶終端均適用,不存在使用局限性,也不會發生誤識別的問題,適用性更好。
具體實現中,本發明還提供一種計算機存儲介質,其中,該計算機存儲介質可存儲有程序,該程序執行時可包括本發明提供的共享上網的檢測方法的各實施例中的部分或全部步驟。所述的存儲介質可為磁碟、光碟、只讀存儲記憶體(英文:read-onlymemory,簡稱:rom)或隨機存儲記憶體(英文:randomaccessmemory,簡稱:ram)等。
本領域的技術人員可以清楚地了解到本發明實施例中的技術可藉助軟體加必需的通用硬體平臺的方式來實現。基於這樣的理解,本發明實施例中的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該計算機軟體產品可以存儲在存儲介質中,如rom/ram、磁碟、光碟等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行本發明各個實施例或者實施例的某些部分所述的方法。
本說明書中各個實施例之間相同相似的部分互相參見即可。尤其,對於共享上網的檢測裝置實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例中的說明即可。
以上所述的本發明實施方式並不構成對本發明保護範圍的限定。