相信做互联网开发的很多人都有一个需求,那就是获取用户的ip,并定位用户访问是哪个省哪个市的。从这个需求来看,首先需要有ip数据库,其次对于某些查不到的ip还能够定期更新ip数据库到最新的,最后就是能快速查询。
1、ip数据库网上都有,我这里也有一个,是从淘宝数据库更新来的,稍后提供mysql版本的数据库脚本下载。
2、ip更新有几个网站,我用的是淘宝提供的,通过定时任务,去查询这些没有查询到ip区域的ip信息。
http://ip.taobao.com/service/getIpInfo.php?ip=, 通过解析返回的数据,获取要查询ip区域信息,然后存入数据库。
3、对于快速查询,有些人说数据库建立索引不就解决了查询问题。可是当一天的数据量有千万级别记录增加的时候,这么多次的ip区域查询必定会给数据库带来很大压力,有一位数据库优化的牛人说过,最好的优化办法就是减少数据库访问。
所有源码和初始化数据文件可在github上找到:https://github.com/wuskyfantasy/ip.query
先看看数据库区域的表设计:
CREATE TABLE `ip_area_dictionary` (
`id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`from` varchar(16) NOT NULL COMMENT '起始IP',