ip地区定位涉及到的ip地址库php扩展和地区数据等等

斯诺登 发布于 2013/12/05 14:20
阅读 727
收藏 5
PHP

花了两天时间搞了个比薪水的网站,数据和逻辑都非常简单,关联的数据有:

公司、职业、薪水、地区(地级市一级)

需要从地区、职业两种维度分别展示薪水排行,进一步点击可以到公司的排行,再进一步可以具体到某个公司的各职业排行,大体就是这么个简单的东西。

说了半天,这个和ip地区定位有什么关系呢?

地区定位,这个就需要用到ip定位了,需要用到的技术如下:

1、iplocation,这是一个php扩展,其实不光可以用于定位ip,也可以用于搜索结构类似的数据(ip->地区)

下载编译过程如下:

wget https://php-tokyocabinet.googlecode.com/files/php-iplocation.tar.bz2
tar jxvf php-iplocation.tar.bz2
cd php-iplocation
/usr/local/webserver/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-iplocation
make && make install

接下来是配置ip地址库文件了,默认带了一个地址库,不过很老了,最好是下载纯真ip(baidu:纯真ip),然后导出成文本文件,将分割字段的空格替换成|,类似这样:xxx.xxx.xxx.xxx|xxx.xxx.xxx.xxx|北京|电信,然后将这个文件传到服务器上,比如这个目录:/data/ip.dict

然后修改配置文件:

vi /usr/local/webserver/php/etc/php.d/iplocation.ini
[iplocation]
iplocation.dict = "/data/ip.dict"
extension=/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20090626/iplocation.so

最后重启php-fpm

编辑一个php文件测试一下:

print_r(iplocation_fetch("202.38.64.1"));

如果有输出地区和详细地址,说明成功了,不过这才是第一步,接下来要把地区(省市)剥离出省和市,然后和自己项目里的省市要匹配起来,省要注意几个直辖市和自治区,其他省都是以“省”这个字结尾,这个用php处理应该不难,就不献代码了。

具体应用范例,注意两个地方,一个是“我猜您的公司是在...”,另外一个是公司的输入框,如果你是有固定ip的大公司,可能会直接定位到公司名,定位的准不准呢?:www.bixinshui.com

加载中
0
斯诺登
斯诺登
没人欣赏。。。
0
0
苏生不惑
苏生不惑
好像有个爆工资
返回顶部
顶部