免费接口禁止从移动设备端访问

本站免费查询接口压力持续增加,为保证服务质量,即日起免费查询接口禁止从移动设备端直接访问。请用户使用拥有固定IP的服务器中转请求。

免费接口屏蔽了一些移动数据网络IP,如果您发现使用固定IP访问也受到限制,请联系service@cellocation.com将您的IP加入白名单。

付费接口无此限制。

如何根据LAC(TAC)/CELLID(ECI)区分2G/3G/4G基站

很多人询问如何根据一个基站的lac和cellid区分这个基站是2G,3G还是4G基站,这里做一下总结。

国内运营商在建网初期就对LAC代码按省进行了分配,每个省/自治区/直辖市都分配到了一定数量的LAC代码区间。当时的2G网络规定了LAC使用的是BCD编码,所以2G的LAC范围是十六进制的 [0x1000-0x1999], [0x2000-0x2999], [0x3000-0x3999]…, [0x9000-0x9999],这一范围对移动联通都适用。

到了3G时代,没有了LAC必须是BCD编码的限制,同时为避免冲突,WCDMA和TD-SCDMA分配了[0xa000-0xffff]的区间分配3G网络的LAC。

4G网络中,LAC被TAC(Tracking Area Code)取代,TAC的分配方式和2G网络下的LAC分配保持一致。那么如何根据这个值区分2G和4G基站呢?这就需要借助CELLID(ECI)字段了,在2G网络中CELLID定义为16位二进制值,范围是[0-65535],4G网络的ECI是28位的二进制值,由20位的enodeb id和8位的cellid组成,而enodeb id是大于256的,因此可以通过判断CELLID(ECI)字段的值来区分2G基站和4G基站。

总结:
LAC(TAC)>=40960 -> 3G基站
LAC(TAC)<40960 并且 CELLID(ECI) > 65535 -> 4G基站
LAC(TAC)<40960 并且 CELLID(ECI) <= 65535 -> 2G基站
这一规则适用于移动联通基站。

免费基站定位数据库下载

推荐一个免费的基站定位数据库:OpenCellID。

OpenCellID是一个开源项目,目标就是收集并公开全球的基站位置数据。和大多数同类项目一样,OpenCellID也是通过众包(crowdsource)来采集数据的,它依靠的是自家另一个开源地图项目OpenStreetMap,使用这个App的用户会上传基站ID、经纬度、信号强度等信息到OpenCellID的服务器。每一个用户上传的数据会被服务器记录为一个测量点(measurement),当服务器收集了足够的针对同一个基站的测量点后,就可以根据这些经纬度和信号强度信息计算出一个综合位置。由于国内很少有人使用OpenStreetMap,所以该项目收录的国内基站并不是很多。

OpenCellID提供免费数据库下载,不过需要先在网站上注册apikey。

除了OpenCellID之外,Mozilla Location Service也同样提供了类似的服务,它们的数据库里集成OpenCellID的基站数据。这些数据每日更新,下载地址在这里。

https://location.services.mozilla.com/downloads

截止2015年10月21日,Mozilla Location Service共收录了全球16254816条基站数据,其中中国大陆部分收录了321371条。这样的数据规模在国内显然无法覆盖足够多的基站来提供有效的查询服务,不过对于一些只需要部分基站数据采样的应用场景(如App位置伪装),这个数据规模也已经足够了。