就是有一个地方,一台电脑放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地址判断的吧?或者设备类型?
你没安装任何服务商提供软体的情况下,我能想到的就是他们分析了流过的数据包信息了,我菜看高手回答
让我想起大学寝室的宽频只能一台电脑用。两台就会蓝屏。


推荐阅读:
相关文章