Skip to content

接入 NetGuard SDK

NetGuard SDK 支持常见客户端操作系统,当前页面提供了全部的接入方法

下载 NetGuard SDK

  • 开发者需要先点这里,下载 NetGuard 的 SDK
  • 在开始接入前,开发者需要在管理后台,获取专属的 AppID 和 AppKey
  • 根据自身需要,为不同平台的客户端 App接入 NetGuard 的 SDK

不同系统的接入方法

Microsoft Windows

NetGuard SDK 的 Windows 版包含 Shield.exe 和 libshield.dll 两个文件。其中 libshield.dll 导出了一个名为_Init 的函数,此函数遵守 C 调用约定(__cdecl)。开发者可以用如下两种不同的办法接入:

零代码接入

这种方式适合没有太多编程基础的开发者。只需要编写配置文件,并把配置文件和 Shield.exe 及 libshield.dll 放到一起,然后运行 Shield.exe 就可以了。配置文件的名称必须是 Shield.ini,它的内容如下:

ini
[Shield]
AppID = DEVELOPEMENT_APP_ID
; DEVELOPEMENT_APP_ID需要替换为开发者自己的AppID

动态库接入

这种方式适合有 Windows 编程基础的开发者。如果你想确保在 NetGuard 初始化成功后再运行别的业务逻辑,推荐使用此方式。下面的代码演示了如何在 C/C++代码中进行接入:

c
/* 建议在单独的进程中加载这个动态链接库
 * 如果直接加载到App进程内,可能导致App
 * 崩溃或无法连接到服务器
 */

// 1. 声明SDK里面的函数
extern "C" {
    typedef int (*InitFunc)(char *, char *);
}

// 2. 恰当的时机加载动态链接库,并进行初始化
HMODULE hMod = LoadLibrary("libshield.dll");
if (!hMod)
    return; // 没有找到libshield.dll
InitFunc init = (InitFunc)GetProcAddress(hMod, "Init");
if (!init)
    return; // 没有找到_Init函数
if (!init(NULL, "DEVELOPEMENT_APP_ID"))  //这里需要替换为开发者自己的AppID
    return; // 初始化失败
// 代码执行到这里代表初始化成功

Google Android

NetGuard SDK 的 Android 版本只有一个 AAR 文件,请将其放到 App 主工程的 libs 目录下(一般是 app/libs)

  1. App 级别的 build.gradle 增加如下项目,注意不要重复添加
groovy
android {
    sourceSets.main {
        jniLibs.srcDirs = ['libs']
    }
}
dependencies {
    implementation files('libs/libshield.aar')
}
  1. 在首个 Activity 或 Application 类里进行初始化
java
// 返回值为true代表初始化成功
bool bInit = Shield.Init(null, "DEVELOPEMENT_APP_ID"); //这里需要替换为开发者自己的AppID

Apple iOS/iPadOS

NetGuard SDK 的 iOS 版同时支持 iPadOS,它包含有如下两个文件:

  • 头文件:Shield.h
  • 静态链接库:libshield.a

下面的代码演示了如何在 Objective-C 代码中加载并初始化 NetGuard 的步骤:

objective-c
// 1. 先在iOS的项目中添加libshield.a,否则编译将会失败

// 2. 包含头文件
#import "Shield.h"

// 3. 在恰当的时机进行初始化,返回值为true代表成功
Shield *s = [Shield getInstance];
BOOL bInit = [s Init:nil key:@"DEVELOPEMENT_APP_ID"]; //这里需要替换为开发者自己的AppID

获取客户端真实 IP

在正常情况下,回源服务器不能获取客户端的真实 IP 地址,而只是虚拟的 IP 地址。

点这里下载对应的插件,并安装到回源服务器,即可获取客户端的真实 IP 地址。

注意

  • 如果回源服务器是 Windows 系统,安装插件后需要重启 App 服务端
  • 如果回源服务器是 Linux 系统,编译并安装插件后会立刻生效
  • 只有加入共同防御计划的开发者才能获取客户端真实 IP

接入之后的处理

  • 登录到管理后台,根据需要正确的添加转发规则
  • 更改原有的代码,不再连接原有 TCP 服务器,改为连接本地回环 IP 地址
  • 移动端的本地回环 IP 地址全部是 127.0.0.1,PC 端的回环 IP 地址需要从管理后台获取
  • 如果在接入 NetGuard 的 SDK 后遇到其他问题,请参考常见问题

Copyright © 2006-2025 NetGuard