近期,因为项目需求,需要根据ip地址去确定位置,在网上查了很多的方法,最终都没有很理想的,还是花钱的接口得劲,可是毕竟会有不给钱就让实现功能的,就总结一下自己使用的,以防忘记。
一、常用的接口
1.淘宝ip接口
http://ip.taobao.com/service/getIpInfo.php?ip=".$ip
这个接口很好用,但是有一个问题就是~~ 如果相同的ip连续访问她就会502,项目时不时的给你来个502,让你蛋疼了一批,当然我是小白,好多东西不了解,如果有大神可以把这个接口玩的贼6的希望赐教;
2.新浪ip接口
http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json
新浪,首先让我想到微博,爱屋及乌的原因吧,看到这个接口,我就感觉它真美,似曾相识的感觉,在加上看到很多兄弟姐妹的博客都是用的这个,而且最主要的还是它没有淘宝ip的那个502问题,因此我当时真的就如遇到命中注定一样,结果..........各位走过路过的,千万别被它的外表给骗了,看到这个接口直接pass掉就行,根本访问不到,可能已经停止了这项服务吧。
3.有道的ip接口
具体链接就不上了,因为他跟新浪一样......访问不到了啊,但是有道词典还是很好使的!
4.地图的接口
各类地图什么高德、百度啊倒是用着挺6,问题就是人家给你限制,不充钱的用户,每天可以访问10W次,之后就开始抛锚了。冲完钱可以直接上升到300W。哇咔咔,这都已经不是天差地别了,差到姥姥家了。
ps:给个阉割版的,总感觉怪怪的,10W,我写的站,日访问连10W都到不了,有点难受~~~~ 即使日访问没有10W我也要选择充钱的,装的跟有很高流量一样。(马哥:不充钱,玩你*的腾讯游戏)
二、纯真ip地址库
下边介绍一款,小清新的,光听名字就叫人如沐春风。
这个你得自己先去人家的官网下载个exe,官网地址:http://www.cz88.net/ 去这里面找到下载两个字,然后起身去泡一杯咖啡,回来打开压缩包点击下载好的setup.zip,解压完直接点击那个exe,下载好去把它里面的qqwry.dat复制到你的项目里面,这个就是他的ip地址库吧,可以理解成;
接下来用一个类 我自己起的名字 叫 IpLocation.php
<?php
namespace Mylib;
/**
* IP 地理位置查询类
*/
class IpLocation {
/**
* QQWry.Dat文件指针
*
* @var resource
*/
private $fp;
/**
* 第一条IP记录的偏移地址
*
* @var int
*/
private $firstip;
/**
* 最后一条IP记录的偏移地址
*
* @var int
*/
private $lastip;
/**
* IP记录的总条数(不包含版本信息记录)
*
* @var int
*/
private $totalip;
/**
* 构造函数,打开 QQWry.Dat 文件并初始化类中的信息
*
* @param string $filename
*/
public function __construct($filename = 'qqwry.dat') {
$this->fp = 0;
if (($this->fp = fopen($filename, 'rb')) !== false) {
$this->firstip = $this->getlong();
$this->lastip = $this->getlong();
$this->totalip = ($