• 欢迎访问好鸭,WordPress信息,WordPress教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏好鸭吧

利用CloudFlare的api获取本机IP和地区

Linux haoduck 4周前 (03-15) 15次浏览 0个评论

需求是有时写Shell脚本是需要判断是否是国内服务器,来使用国内CDN或对国内友好的下载源。

正文

地址是:http://104.19.19.19/cdn-cgi/trace

104.19.19.19可以是任意一个CloudFlare CDN的IP

但尽量不要用1.1.1.1之类的国内被阻断的IP

访问http://104.19.19.19/cdn-cgi/trace是这样的

利用CloudFlare的api获取本机IP和地区

fl=12f505
h=104.19.19.19
ip=59.42.75.75
ts=1615783919.891
visit_scheme=http
uag=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36
colo=LAX
http=http/1.1
loc=CN
tls=off
sni=off
warp=off
gateway=off

这里第3行的ip=59.42.75.75就是本机公网IP,第10行的loc=CN就是地区

使用它们的方法

获取IP:curl -s http://104.19.19.19/cdn-cgi/trace|grep ip|cut -d '=' -f 2
获取地区:curl -s http://104.19.19.19/cdn-cgi/trace|grep loc|cut -d '=' -f 2

当然,你要使用别的,将上面的命令改一下grep ip这里的ip就行了,比如改成uag就是获取UA

shell脚本使用示例

#!/bin/bash
ip=$(curl -s http://104.19.19.19/cdn-cgi/trace|grep ip|cut -d '=' -f 2)
loc=$(curl -s http://104.19.19.19/cdn-cgi/trace|grep loc|cut -d '=' -f 2)
echo 你的IP:${ip},你的地区:${loc}
if [ "${loc}" == "CN" ]; then
# 如果是国内地区执行的命令
echo "is China"
else
# 如果不是国内地区执行的命令
echo "no China"
fi

好鸭 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:利用CloudFlare的api获取本机IP和地区
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址