全部产品

Windows环境C++版本

更新时间:2020-10-10 14:26:42

环境准备

以下代码在Windows 10 、 Visual Studio 2019、python3.5 编译测试通过:

目前支持Windows x86_64 (64-bit)平台

Botan2安装

注意

版本要求:2.13.0或以上版本。

通过源码安装Botan2(推荐):

下载 https://github.com/randombit/botan/archive/2.13.0.tar.gz

解压缩文件 2.13.0.tar.gz 通过命令行进入解压后的文件夹botan-2.13.0

执行命令:python configure.py --cc=msvc --cpu=x86_64

注意

编译Botan2需要依赖python请自行安装并设置环境变量

编译成功后的文件如图所示:

botan.dll

可在window命令行工具执行 botan-test.exe 观察测试结果。

下载SDK

如已购买IP地理位置库(离线版)商品,可进入实例详情,下载以下三个文件

  • 离线数据库(通常是**.dex)

  • 授权证书文件(通常是**.lic)

  • SDK(C++语言)

  1. 头文件geoipclient.hpp

  2. 动态链接库文件geoipclient.dll

  3. 外部链接库文件geoipclient.lib

    注意

    续费、升级商品套餐一定要同步更新license证书文件,如果license证书过期,则SDK会直接不可用。

安装SDK

  1. 安装 Visual Studio 2019 创建演示项目 HelloWorld

HelloWorld

2.通过Visual Studio 2019加载引入botan.lib、geoipclient.lib(此步骤重要)

注意

需要自行将botan.lib、geoipclient.lib复制到下面的参考路径

geoipclient.lib

参考路径:C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\lib\x64

快速入门

重要类介绍

    • license_path:license路径

    • ipdata_path:data数据路径

    • ip:被查询IP

使用方法

  1. 将加载字段、license文件路径、数据文件路径封装成一个 geoipclient

  2. 实例化 GeoIPClient

  3. 通过 client.search(String ip) 方法来检索ip的地址位置等相关信息,返回的数据为json格式,值不在时用空字符串 "" 代替。

演示代码

  • geoipclient主要封装了c++类GeoIPClient,暴漏search方法,该方法返回对应ip地址的信息,以json的格式返回。

  • 异常说明:

    1.如果license文件和ip地址数据文件有问题,会抛出异常

    2.如果查询频率超过限速,会直接返回空字符串

  • 修改HelloWorld.cpp代码为以下演示代码作为查询ipv4示例:

#include <iostream>
#include "geoipclient.hpp"
using namespace alibaba::dns;
int main() {    
    try {
        //第一个参数是授权文件的路径,第二个参数是离线数据库文件路径  
        GeoIPClient client("D:\\ben\\client.lic", "D:\\ben\\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;
}

1.设置Release为x64

release

2.配置好代码中的client.lic、ipv4.dex 文件

3.按F5键进行调试

4.打开 source\repos\HelloWorld\x64\Release 可以看到 HelloWorld.exe 文件生成

5.复制botan.dll、geoipclient.dll 到HelloWorld.exe文件的同一路径如下图所示

HelloWorld.exe

6.在此目录新建命令窗口执行HelloWorld.exe会有如下输出内容,如果命令行有乱码可以执行以下命令尝试解决chcp 65001或Active code page: 65001

ip

返回值字段说明

字段

含义

country

国家

country_code

国家代码

country_en

国家英文

province

省/州

province_code

省/州数字代码

province_en

省/州英文

county

区/县

county_code

区/县数字代码

city

城市

city_code

城市数字代码

city_en

城市英文

isp

运营商

isp_code

运营商代码

routes

运营商线路

longitude

经度

latitude

纬度