一、关于蜂窝网络的IP变动(IPV4)
重新接入会变,切换区域会变,同一区域切换基站不变。
查看蜂窝IP方法:手机浏览器访问百度,搜索ip
1. 重新发起接入,ip会改变
重新发起接入,ip会发生改变,ip分配完成应该是在接入之后,dhcp自动分配的;
重新发起接入过程,可能是开机重启,飞行模式切换,没有信号到有信号
2. 同一个区域内切换基站 ip不会改变(移动IP技术)
4g保证了基站间无缝切换,也就是切换基站的过程,只要是在切换的过程中没有断网(4g链路,并不是数据开关),即没重新发起随机接入,ip就还是那个ip;
3. 从一个区域到另一个区域,ip会改变
ip分配都是以一个区域GGSN核心网分配的,比如当前在北京接入北京联通,出口ip也是北京联通,但是到河北,接入就改变成河北联通,那ip肯定是会改变的;
二、10.64.0.0/64运营商级NAT保留地址
- 几年前每个光猫、每部手机上网获取的是公网IP地址,可以实现远程控制、可以搭建自己的临时服务器,但是自从使用私网地址后,这些都已经成为过去;
- 互联网的IPv4地址早在2011年2月已经分配完毕,至此我国的IPv4地址数量不再增加。截止2015年12月,CNNIC统计,我国IPv4地址数量为3.37亿个,如何能够满足8亿多网民的需求呢;
- 在2012年RFC6598给出了一个地址块,用户运营商的NAT地址转换,以解决公网IPv4地址不够用的情况,这个地址块又不能与普通的私网地址重复,使用了100.64.0.0/10的地址块
三、运营商级NAT对互联网公司带来的影响
1. 想通过 IP 定位到城市,难。
由于国内大部分的省都是以省级为单位划分基站对外访问 IP ,也就是说,同样一个出口 IP,后面的对应用户可能是跨多个城市的。
也有一部分省是按照市一级为单位划分的,但是位置偏远,你估计也不会关心。
还有一部分地区是一段 IP 给两三个城市同时使用,在我们的数据库依然没法准确到城市。
2. 对于反作弊或者反爬虫,麻烦。
由于是 NAT 方式,一个IP 后面必然是一大堆用户,那么从互联网公司的运维角度来看,明显会看出一个IP的访问过于频繁,那是否要进行特殊处理,比如封禁,就要基于 IP 本身的用途进行参考。
比如基站 IP, 所封禁的阈值,就要比家庭宽带的要高的多,而 IDC 的 IP ,在不考虑第三方出口的情况下,阈值可能就要相对低很多。不然你的封禁处理会可能导致影响到正常用户使用。
3. 漫游,巨麻烦。
往往大家在有些时候需要判断用户所在地理位置,那么在基站下,则是另外一个情况。
不但像第一点说的定位不到城市,而且还有可以连当时用户所在的省都是错的。
经过兜里揣三部手机出差到处看 IP 的 职业病习惯的历练 ,目前我们所知道的三家运营商的漫游情况是这样的,请大家务必牢记:
- 移动:漫游到当地网络。如果你的卡是北京的,如果去到上海,那么你会看到上海的 IP。
- 联通和电信:漫游回属地网络。如果你的卡是北京的,如果去到上海,你依然会看到北京的 IP。
提醒一点,这只是国内的情况,当你漫游到港澳台(我只去过台湾,但我相信港澳也是一样的)和国外(我只去过美国,但可以以此类推了)的时候,都是属地漫游方式。你经常看到有人抱怨说拿着移动联通或者电信的手机,在国外访问 GOOGLE 依然会被墙,因为你等于走了隧道回到国内再出去,当然会被墙啊,没什么可奇怪的了。这也是为啥有人要买国外的运营商手机卡拿到国内来用的原因吧。
不过能够明确知晓三家运营商的漫游情况,也能帮助你判断一些事情,比如用户是移动的 IP 就不用太担心了,一定是用户目前所在地,虽然不能到城市,但是也可以相信。联通和电信才麻烦。
不过我们有时也在想,毕竟长期漫游不是一般用户能干的事情,这种相对小概率事件其实可以忽略掉的。而且如果有其他数据来源, IP 库还是作为兜底方案为好。
四、基站数据的价值
所谓基站数据就是提供一个 IP 列表,告诉你哪些 IP 段是运营商用于基站的。
典型场景是这样的,目前无论是何种手机系统,基本上都支持手机当热点,好坏不用说了。但是会有一个问题。
很多系统或者应用的场景,会基于 WIFI 环境下做背景下载或者图片的尺寸的优化,没错吧?比如很多应用商店的策略都是说 WIFI 下会自动更新。苹果手机也不例外。
问题来了,如果我的手机是连接的朋友手机的热点上的 WIFI,那么以上的 WIFI 场景判断都很有可能会导致流量大增,最后伤害到用户体验。
怎么破?貌似没听说哪个系统支持,即使有人说苹果可以检测,但是那应该是两个苹果设备之间的检测,如果我链接了一个安卓手机的热点呢?
在这种情况下,基站 IP 数据能帮你忙。。。
只要在判断 WIFI 的场景下,再增加一个用户出口 IP 的判断,只要不在基站数据库里,才能认为是真实可用的 WIFI 环境,就可以了。
而且也可以用于用户当前上网方式的判断,如果你只能拿到 IP 的话 ,这个库就可以帮助你判断,用户目前的上网方式,拿来出数据报告也是有价值的。