就是有一個地方,一臺電腦放wifi後,能允許好幾臺手機上網,但不能給其他電腦上網,如果同時兩臺或以上的都會被檢測到,並做出懲罰。即使用是無線路由器的話,只能給一臺電腦和好幾臺手機上網,兩臺電腦或以上的會被檢測到,然後做出相應的懲罰。所以我很好奇他是怎麼檢測出移動設備和電腦的,我只知道網路是按照ip地址來分的,難道手機和電腦的ip間有不同,學生小白一個,求大神解釋下。謝謝


通過排除法,初步分析應該是通過應用層的某些信息(例如HTTP頭中的User-Agent欄位)來進行判斷的。

排除方法如下:

按照TCP/IP的四層模型(也有說五層的,這裡忽略掉關係不大的物理層)

網路介面(鏈路層):這層主要處理的是MAC地址。MAC地址雖然能夠代表不同的生產廠商甚至產品型號,但是在進行選路時,路由會更改MAC地址。具體到這個問題中,如果電腦開啟wifi熱點,那麼每個通過wifi上網的手機或電腦發出的包的MAC地址都會變成wifi熱點電腦的MAC,設備實際MAC地址幾乎不會被服務商知道。因此這不足以作為產品類型的判斷依據。

網際層(網路層)與傳輸層:這兩層主要處理的是IP地址及傳輸層協議和埠,也就是傳統意義上的五元組。他們都不具有任何標示產品類型的可能,因此直接排除。同時對於常見的使用方式來講,通過wifi分配的IP都是內網IP,在向外轉發的時候需要做NAT,因此實際設備的IP大多不會被服務商知道(特殊協議和應用場景下在應用層攜帶該信息,屬於例外);

應用層:因此實際情況只剩下應用層了。以HTTP協議為例,HTTP協議頭部有一個User-Agent欄位,該欄位由瀏覽器主動制定,一般包含主機、系統以及瀏覽器信息,我現在上網時該欄位為"Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:48.0) Gecko/20100101 Firefox/48.0",從中就可以看出我是通過一臺64位intel電腦的ubuntu系統中的Firefox(版本為48.0)在上網。而一個移動段訪問網頁時該欄位看起來可能會是這樣:Mozilla/5.0 (Linux; U; Android 2.2.1; zh-cn; HTC_Wildfire_A3333
Build/FRG83D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile
Safari/533.1。

因此只要連上wifi後訪問過網頁,ISP(網路服務提供商)就能通過分析HTTP協議來得知訪問的設備信息。由於同一臺設備的User-Agent欄位基本是不變得(除非更換瀏覽器或者手動更改),因此通過這個欄位就能方便的得知終端的類型,同時也可以以此為依據進行終端數量的判斷並進行限制。


還有mac地址
1,抓HTTP包,查看User-Agent2,掃埠?
是不是可以用代理呢?


謝邀,

應該是mac地址判斷的吧?或者設備類型?
你沒安裝任何服務商提供軟體的情況下,我能想到的就是他們分析了流過的數據包信息了,我菜看高手回答
讓我想起大學寢室的寬頻只能一臺電腦用。兩臺就會藍屏。


推薦閱讀:
相關文章