license-authentication/hardware-agent
bingtuo c7e1ae0779 feat licence-tool 2026-07-16 11:47:29 +08:00
..
README.md 客户管理 2026-07-10 13:44:41 +08:00
agent feat agent去掉hardware关键词sprint,tool改为加密后输出到文件 2026-07-16 11:47:09 +08:00
build.sh 客户管理 2026-07-10 13:44:41 +08:00
go.mod feat 改名 2026-07-16 08:56:57 +08:00
licence-tool feat licence-tool 2026-07-16 11:47:29 +08:00
licence-tool.go feat agent去掉hardware关键词sprint,tool改为加密后输出到文件 2026-07-16 11:47:09 +08:00
main.go feat agent去掉hardware关键词sprint,tool改为加密后输出到文件 2026-07-16 11:47:09 +08:00
rsa_private.pem feat agent签名 2026-07-16 11:13:17 +08:00
rsa_private.pem.b64 feat agent签名 2026-07-16 11:13:17 +08:00
rsa_private_b64.txt feat agent签名 2026-07-16 11:13:17 +08:00
rsa_public.pem feat agent签名 2026-07-16 11:13:17 +08:00
rsa_public.pem.b64 feat agent签名 2026-07-16 11:13:17 +08:00

README.md

Hardware Agent

宿主机硬件信息获取 Agent用于 licence-client 容器部署时的硬件信息验证。

功能

  • 获取服务器真实硬件信息MAC、IP、CPU序列号、主板序列号
  • 提供 HTTP API 给容器内的 licence-client 调用
  • 支持 Linux 和 Windows

使用方法

1. 编译

chmod +x build.sh
./build.sh

或手动编译:

# Linux
CGO_ENABLED=0 go build -ldflags="-s -w" -o hardware-agent main.go

# Windows
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o hardware-agent.exe main.go

2. 部署

把编译好的二进制文件上传到宿主机:

scp hardware-agent-linux-amd64 user@your-server:/usr/local/bin/hardware-agent
ssh user@your-server "chmod +x /usr/local/bin/hardware-agent"

3. 启动

# 方式1直接运行前台
./hardware-agent serve

# 方式2后台运行
nohup ./hardware-agent serve > /var/log/hardware-agent.log 2>&1 &

# 方式3指定端口
nohup ./hardware-agent serve 8899 > /var/log/hardware-agent.log 2>&1 &

4. 验证

# 测试 Agent 是否正常运行
curl http://127.0.0.1:8899/health

# 获取硬件信息
curl http://127.0.0.1:8899/api/hardware-info

5. 停止

pkill hardware-agent

API 接口

接口 方法 说明
/health GET 健康检查,返回 "ok"
/api/hardware-info GET 获取硬件信息,返回 JSON

响应示例

{
  "macAddress": ["00:1A:2B:3C:4D:5E"],
  "ipAddress": ["192.168.1.100"],
  "cpuSerial": "ABC123DEF456",
  "mainBoardSerial": "XYZ789"
}

容器内调用

licence-client 需要配置 Agent 的地址来获取硬件信息:

license:
  hardwareConfigPath: /data/license/hardware-info.properties
  agentApiUrl: http://host.docker.internal:8899/api/hardware-info

注意:host.docker.internal 是 Docker 提供的特殊 DNS指向宿主机的 IP。