/ Article / 4浏览

Go获取客户端IP返回图片

文章目录

第一次写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次

更新于
Grafana监控Teamspeak服务器
Grafana监控Teamspeak服务器
PVE + FNOS直通硬盘后,硬盘仓风扇PWM调速
基于fancontrol和pwmconfig实现PVE中风扇PWM调速
Prometheus监控并存储Linux系统中机械硬盘温度
Prometheus监控并存储Linux系统中机械硬盘温度
路由器中使用Redir-Host和TPoxy代替Fake-ip和TUN
路由器中使用Redir-Host和TPoxy代替Fake-ip和TUN
DNS分流设置,AdGuardHome、Dnsmasq、ChinaDNS-NG
DNS分流设置,AdGuardHome、Dnsmasq、ChinaDNS-NG

0

  1. This post has no comment yet

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注