Linux环境C++版本
目前该产品在做内部调整,不支持新购、续费、升级等操作,订单有效期内可继续正常使用,本文档仅供订单期内用户参考。请留意服务到期时间,做好备选方案,感谢您的支持理解。
环境准备
目前只支持Linux x86_64 (64-bit)平台(Redhat/Centos)
需要支持c++11标准的c++编译器
Botan2安装
注意版本要求:2.13.0或以上版本。
通过包管理工具安装:
centos:yum install -y botan2
通过源码安装(推荐):
wget https://github.com/randombit/botan/archive/2.13.0.tar.gz tar -xvzf 2.13.0.tar.gz ./configure.py make make instal
下载SDK
如已购买IP地理位置库(离线版)商品,可进入实例详情,下载以下三个文件
离线数据库(数据文件)
授权证书文件(license)
SDK(C++语言)
头文件
geoipclient.hpp
动态链接库
libgeoipclient.so
静态链接库
libgeoipclient.a
续费、升级商品套餐一定要同步更新license证书文件,如果license证书过期,则SDK会直接不可用。
安装SDK
1.将下载的头文件geoipclient.hpp拷贝到项目的头文件目录下
2.根据需要把libgeoipclient.so
或 libgeoipclient.a
拷贝到/usr/local/lib
下
3.设置环境变量export LD_LIBRARY_PATH=/usr/local/lib
环境变量一定要设置好,不然无法查找到动态链接库
libgeoipclient.so
或静态链接库
libgeoipclient.a
快速入门
重要类介绍:
license_path
:license路径
ipdata_path
:data数据路径
ip
:被查询IP
使用方法:
将加载字段、license文件路径、数据文件路径封装成一个
geoipclient
实例化
GeoIPClient
通过
client.search(String ip)
方法来检索ip的地址位置等相关信息,返回的数据为json格式,值不在时用空字符串 "" 代替。
例子程序
libgeoipclient主要封装了c++类
GeoIPClient
,暴漏search
方法,该方法返回对应ip地址的信息,以json
的格式返回。
将下载的头文件
geoipclient.hpp
、离线数据库(数据文件)、授权证书文件(license)拷到
example.cpp
相同的目录下
。
异常说明:
1.如果license文件和ip地址数据文件有问题,会抛出异常
2.如果查询频率超过限速,会直接返回空字符串
调用实例:
#include <iostream>
#include "geoipclient.hpp"
using namespace alibaba::dns;
int main() {
try {
//第一个参数是授权文件的路径,第二个参数是离线数据库文件路径
GeoIPClient client("client.lic", "ipv4.dex");
std::cout << client.search("47.116.2.4") << std::endl;;
}
catch (std::exception& e) {
std::cout << "get error:" << e.what() << std::endl;
}
return 0;
}
在目录下执行
[root@localhost ~]#g++ -o testgeoipclinet example.cpp -I. -lgeoipclient -lbotan-2 -std=c++11
执行及查看查询结果
[root@localhost ~]#./testgeoipclinet
{
"country": "中国",
"city": "上海市",
"isp": "阿里云",
"province_en": "Shanghai",
"latitude": "31.2459066",
"county": "浦东新区",
"country_en": "China",
"city_en": "Shanghai",
"country_code": "CN",
"routes": "中国电信/中国联通/中国移动/中国铁通/中国教育网",
"province": "上海市",
"isp_code": "1000323",
"longitude": "121.5677066"
}
附件
properties
字段含义:
字段 | 含义 | 示例值 |
---|---|---|
country | 国家(或地区)中文 | 中国 |
country_code | 国家(或地区)两位字母 | CN |
country_en | 国家(或地区)英文 | China |
province | 省(二级)中文 | 黑龙江省 |
province_code | 省(二级)数字代码 | 230000 |
province_en | 省(二级)英文/拼音 | Heilongjiang |
city | 市(三级)中文 | 牡丹江市 |
city_code | 市(三级)数字代码 | 231000 |
city_en | 市(三级)英文/拼音 | Mudanjiang |
county | 区(四级)中文 | 阳明区 |
county_code | 区(四级)数字代码 | 231003 |
isp | 运营商 | 中国联通 |
isp_code | 运营商数字代码 | 100026 |
routes | 运营商线路 | 中国联通 |
longitude | 经度 | 129.634645 |
latitude | 纬度 | 44.596328 |