近来正在测试一个项目,因为产品不断的升级,需要不断变化的网关,我们主要使用的是移动的网关,但是因为访问我们的服务器上WAP网页、彩信等有的用户使用的Opera等可访问WAP的浏览器,所以在分析时也得到了非移动的网关。而中国移动的网关特别乱,从申请的记录来看,各个省、市都有自己的移动网关段,但是实际上,申请的这些段又不是固定的,即在申请的数据库中记录是广东移动的,而现在这些网关却在上海使用,所以对于我们使用网关判断地域来说,不是十分的准确,如果要更准确些,则必需不断地更新各个城市的网关,所以我就做了这个软件,当然我不是研发人员,做出来不一定被采用,而研发人员使用了从手机号,反查网关的做法,这种做法比较及时准确,但是也存在可能遗漏网关的情况。我的做法是通过手机用户访问的网关,我从IP管理的数据库(官方数据库中)中查找其申请的网关段,这样是不是就可以通过这个网段来判断城市了呢?但是也存在着一个城市申请的网关被其它城市使用的情况,毕竟人家中国移动都是一家人吗,这可给我们带来了困难呀。
那比较好的方式,我认为是我的做法和同事哪个方式两者结合起来,互为补充,这样比较全面,遗漏的可能性小一些。而我的做法大家可能都清楚,就是通过从IIS中分析获得网关,这些网关我使用程序采用POST的方式请求判断网关的官方查询入口,得到网关IP的所属的城市和其申请的移动IP段。
我获得了很多的网关地址和数据,虽然比不上纯真的数据库,但是也挺全的,下面是我获得的数据格式,在SQL数据库中,我拷贝了一些,大家看看有没有用呢?
网关 城市 类型 起始IP 终止IP
211.138.237.173 湖南省长沙市 移动 211.138.224.0 211.138.239.255
211.136.23.43 辽宁省沈阳市 移动 211.136.0.0 211.143.255.255
218.202.4.135 云南省昆明市 移动 218.202.0.0 218.202.63.255
218.206.112.33 江苏省无锡市 移动 218.206.96.0 218.206.159.255
218.191.41.131 香港特别行政区 218.190.0.0 218.191.255.255
218.206.112.136 江苏省无锡市 移动 218.206.96.0 218.206.159.255
222.91.38.154 陕西省宝鸡市 电信 222.90.0.0 222.91.255.255
218.206.112.80 江苏省无锡市 移动 218.206.96.0 218.206.159.255
218.206.110.13 江苏省无锡市 移动 218.206.96.0 218.206.159.255
218.206.128.172 江苏省镇江市 移动 218.206.96.0 218.206.159.255
218.157.23.154 韩国 218.144.0.0 218.159.255.255
218.101.144.70 韩国 218.101.128.0 218.101.255.255
218.236.237.220 韩国 218.234.0.0 218.239.255.255