IP的准确性

最近游戏项目中更新机制有所修改,游戏启动时会从cdn上读取一个文件(约60B),但是后台异常收集系统中发现很多玩家请求不了该文件(libcurl的get请求),返回的error code有很多种,以6、22、28、56居多。

 

一直无法确定是否跟程序完全无关(之前遇到过返回error code 23跟程序有关,是程序出bug了),因为有一些玩家反映使用2g/3g网络就正常进入游戏了。

之后我将系统中查询出来的数据,主要是IP,通过调用第三方的接口(其实就是发一条http请求),获得该IP所在地区以及线路,在excel中进行分析。网上有很多这种API,但是我发现还是腾讯提供的IP共享计划最为准确,以IP:117.136.73.74为例

 

http://ip.qq.com/cgi-bin/searchip

 

http://www.baidu.com/s?ie=utf-8&wd=117.136.73.74 

image

 

新浪 http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=117.136.73.74

 

淘宝 http://ip.taobao.com/service/getIpInfo.php?ip=117.136.73.74

显示:华北 - 北京 移动   云南省/北京  这个差距有点大 - -

 

我获取IP的例子使用的是百度的网址,本想使用腾讯的分享计划,一是它的接口是cgi动态的比较慢,二是它的页面是gbk我抓取回来是乱码,不想搞乱码的问题就直接使用了百度的页面

 

request.get('http://www.baidu.com/s?ie=utf-8&wd=' + ip, {form:{}}, function(error, respose, body) {
    if (/IP地址:&nbsp;([^<]+)<\/span>([^<]+)/.test(body)) {
        //console.log(RegExp["$1"] + '\t' + RegExp['$2']);
        fn(RegExp['$2']);
    }
});
 
posted @ 2014-10-08 14:10  meteoric_cry  阅读(1122)  评论(0编辑  收藏  举报