千家信息网

php如何通过淘宝API查询IP地址归属等信息

发表于:2024-10-15 作者:千家信息网编辑
千家信息网最后更新 2024年10月15日,这篇文章给大家分享的是有关php如何通过淘宝API查询IP地址归属等信息的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。淘宝公司提供了一个很好用的IP地理信息查询接口。在这里
千家信息网最后更新 2024年10月15日php如何通过淘宝API查询IP地址归属等信息

这篇文章给大家分享的是有关php如何通过淘宝API查询IP地址归属等信息的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

淘宝公司提供了一个很好用的IP地理信息查询接口。

在这里:http://ip.taobao.com/

TaobaoIPQuery2这个类将极大的简化相关的信息查询。

类 TaobaoIPQuery2 文件:

$ip));    $ch = curl_init();    $options = array(      CURLOPT_URL => sprintf('%s?%s', self::$_requestURL, $query),      CURLOPT_RETURNTRANSFER => true,      CURLOPT_AUTOREFERER => false,      CURLOPT_FOLLOWLOCATION => false,      CURLOPT_HEADER => false,      CURLOPT_TIMEOUT => 3.0,    );    curl_setopt_array($ch, $options);    $content = curl_exec($ch);    curl_close($ch);    return $content;  }    private static function parseJSON($json){    $O = json_decode ($json, true);    if(false === is_null($O)){      return $O;    }    if (version_compare(PHP_VERSION, '5.3.0', '>=')) {      $errorCode = json_last_error();      if(isset(self::$_JSONParseError[$errorCode])){        throw new Exception(self::$_JSONParseError[$errorCode], 5);      }    }    throw new Exception('JSON parse error', 5);  }    private static $_JSONParseError = array(    JSON_ERROR_NONE=>'No error has occurred',      JSON_ERROR_DEPTH=>'The maximum stack depth has been exceeded',      JSON_ERROR_CTRL_CHAR=>'Control character error, possibly incorrectly encoded',      JSON_ERROR_STATE_MISMATCH=>'Invalid or malformed JSON',      JSON_ERROR_SYNTAX=>'Syntax error',      JSON_ERROR_UTF8=>'Malformed UTF-8 characters, possibly incorrectly encoded',  );}

TaobaoIPQuery2.Class.php:

$ip));    $ch = curl_init();    $options = array(      CURLOPT_URL => sprintf('%s?%s', self::$_requestURL, $query),      CURLOPT_RETURNTRANSFER => true,      CURLOPT_AUTOREFERER => false,      CURLOPT_FOLLOWLOCATION => false,      CURLOPT_HEADER => false,      CURLOPT_TIMEOUT => 3.0,    );    curl_setopt_array($ch, $options);    $content = curl_exec($ch);    curl_close($ch);    return $content;  }    private static function parseJSON($json){    $O = json_decode ($json, true);    if(false === is_null($O)){      return $O;    }    if (version_compare(PHP_VERSION, '5.3.0', '>=')) {      $errorCode = json_last_error();      if(isset(self::$_JSONParseError[$errorCode])){        throw new Exception(self::$_JSONParseError[$errorCode], 5);      }    }    throw new Exception('JSON parse error', 5);  }  private static $_JSONParseError = array(    JSON_ERROR_NONE=>'No error has occurred',      JSON_ERROR_DEPTH=>'The maximum stack depth has been exceeded',      JSON_ERROR_CTRL_CHAR=>'Control character error, possibly incorrectly encoded',      JSON_ERROR_STATE_MISMATCH=>'Invalid or malformed JSON',      JSON_ERROR_SYNTAX=>'Syntax error',      JSON_ERROR_UTF8=>'Malformed UTF-8 characters, possibly incorrectly encoded',  );}

调用:

$ip = $_SERVER["REMOTE_ADDR"];$ipquery = new taobaoIPQuery($ip);$region = $ipquery->get_region();$country = $ipquery->get_country();$city = $ipquery->get_city();

我们再来看个腾讯api接口的

/*  *根据腾讯IP分享计划的地址获取IP所在地,比较精确  */ function getIPLoc_QQ($queryIP){   $url = 'http://ip.qq.com/cgi-bin/searchip?searchip1='.$queryIP;   $ch = curl_init($url);   curl_setopt($ch,CURLOPT_ENCODING ,'gb2312');   curl_setopt($ch, CURLOPT_TIMEOUT, 10);   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 获取数据返回   $result = curl_exec($ch);   $result = mb_convert_encoding($result, "utf-8", "gb2312"); // 编码转换,否则乱码   curl_close($ch);   preg_match("@(.*)

@iU",$result,$ipArray); $loc = $ipArray[1]; return $loc; }

腾讯的IP分享计划的查询接口连接是:http://ip.qq.com/cgi-bin/searchip,该连接后面会带有一个get参数searchip1,即searchip1=你要查询的IP地址。采用PHP向http://ip.qq.com/cgi-bin/searchip发送http get request,然后获取相应,获得相应结果后,将结果用正则表达式将需要的地理位置信息提取出来就OK了。当然,PHP发送get请求的方法有很多,我用curl来模拟http请求的方法

Curl是PHP的一个扩展,进行测试之前,先确认PHP已经加载了curl扩展。打开PHP配置文件php.ini,搜索 "extension=php_curl.dll",将其前面的分号(;)去掉,然后重启HTTP服务器,查看phpinfo(),若能看到curl的信 息,说明PHP扩展curl成功

接下来是新浪网的API接口

新浪的IP查询接口地址是:http://int.dpool.sina.com.cn/iplookup/iplookup.php,该连接后面也带有get参数,参数ip=你要查询的IP地址,format=返回的查询结果格式。为了方便起见,返回的格式采用json,即format=json,因此,PHP出来扩展curl外,还得扩展json:

/*  *根据新浪IP查询接口获取IP所在地  */ function getIPLoc_sina($queryIP){   $url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$queryIP;   $ch = curl_init($url);   //curl_setopt($ch,CURLOPT_ENCODING ,'utf8');   curl_setopt($ch, CURLOPT_TIMEOUT, 10);   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 获取数据返回   $location = curl_exec($ch);   $location = json_decode($location);   curl_close($ch);      $loc = "";   if($location===FALSE) return "";   if (emptyempty($location->desc)) {     $loc = $location->province.$location->city.$location->district.$location->isp;   }else{     $loc = $location->desc;   }   return $loc; }

使用getIPLoc_sina("183.37.209.57")即可得到IP地址所在的地址位置。

感谢各位的阅读!关于"php如何通过淘宝API查询IP地址归属等信息"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

查询 地址 接口 信息 淘宝 参数 所在 结果 新浪 腾讯 归属 位置 内容 地理 所在地 数据 文件 方法 更多 格式 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 amd 组建服务器 河南省网络安全测评 空中课堂app软件开发 定州市网络安全和信息化委员会 服务器超微主板 开机不显示画面 注意网络安全问题有哪些问题 ca认证服务器大概多少钱 软件开发属于科技局管理范畴吗 车牌识别系统无法创建数据库失败 wind数据库国家统计局 虹口区服务软件开发管理制度 富国科技互联网基金有哪些 数据库怎么在表中新增一列 专科学网络技术好不好 数据库怎么找主文件的位置 pdo 创建数据库 锋致fz影库服务器如何使用 汽车电子软件开发简历项目经验 进服务器命令 mysql远程数据库延迟 服务器安全狗怎么禁止进程 电脑我的世界服务器披风 异星工厂一直服务器保存地图 四川餐饮软件开发 河北中小学网络安全 我心向党网络安全你我他 汽车电子软件开发简历项目经验 校园无线网络技术参数响应表 威海荣成软件开发 软件开发技术部门管理制度
0