
第一次写go代码,目的是实现https://ping0.cc/img1类似的效果,主要用于在teamspeak中作为bunner使用,所以此处不考虑获取User-Agent设置,仅获取IP和定位信息
由于ip-api.com返回的定位信息不准确,所以额外通过百度定位api进行ip二次定位
ping0.cc默认样式

teamspeak中使用

具体使用
https://github.com/lnbiuc/ip-image/blob/master/main.go
代码非常简单,也可复制代码自行编译
windows平台编译
# 使用cmd
set GOOS=linux
set GOARCH=amd64
go build -o go-ip-info-linux-amd64 main.go
# 使用powershell
$env:GOOS = "linux"
$env:GOARCH = "amd64"
go build -o go-ip-info-linux-amd64 main.go
获取二进制文件运行
使用chmod +x给执行权限
chmod +x go-ip-info-linux-amd64
在Linux中推荐使用systemctl运行
[Unit]
Description=Go IP Info Web Service
After=network.target
[Service]
WorkingDirectory=/root/ipinfo
ExecStart=/root/ipinfo/go-ip-info-linux-amd64
Environment=BAIDU_API_KEY=<替换成百度APIKEY>
Restart=always
RestartSec=3
StandardOutput=append:/root/ipinfo/output.log
StandardError=append:/root/ipinfo/error.log
[Install]
WantedBy=multi-user.target
自启动配置
sudo systemctl daemon-reload
sudo systemctl enable go-ip-info.service
sudo systemctl start go-ip-info.service
sudo systemctl status go-ip-info.service
运行时需要将字体文件和二进制文件放在同一个文件夹

API
API都添加了基础路径防止被盗刷
GET https://<domain>/AQuVk4853gdCarY6ysbscNZCL4A7ndgK
获取客户端当前IP信息,返回图片
GET https://<domain>/9uTWQKMJPcUuihF4LUtCtj48GkkRaZ82?ip=<指定IP>
获取指定IP信息,可用于测试
其他
teamspeak配置
编辑服务器,服务器图片地址填入api地址即可,图片更新时间单位为秒

百度API KEY申请
https://lbsyun.baidu.com/apiconsole/key
只需勾选普通IP定位即可

QPS限制
ip-api限制每秒最大45次
百度API定位限制每秒3次,每天5000次
0