Skip to content

Get Unity File IP

Get Unity File IP #240

Workflow file for this run

name: Get Unity File IP
on:
workflow_dispatch:
schedule:
- cron: '00 23 * * *'
permissions:
contents: write
jobs:
resolve-ip:
runs-on: ubuntu-latest
steps:
- name: 安装依赖工具
run: |
sudo apt-get update
sudo apt-get install -y curl dnsutils jq
- name: 解析域名 IP
id: domain-ip
run: |
# 解析 download.unity3d.com 的 IP
DOMAIN_IPS=$(dig +short download.unity3d.com | grep -E '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$')
echo "domain_ips=${DOMAIN_IPS//$'\n'/,}" >> $GITHUB_OUTPUT
- name: 获取最终下载地址的 IP
id: final-ip
run: |
# 获取文件 URL 的实际服务器 IP(追踪重定向)
FINAL_URL=$(curl -sIL -o /dev/null -w '%{url_effective}' https://download.unity3d.com/download_unity/82314a941f2d/Windows64EditorInstaller/UnitySetup64-6000.0.38f1.exe)
FINAL_DOMAIN=$(echo "$FINAL_URL" | awk -F/ '{print $3}')
FINAL_IP=$(dig +short "$FINAL_DOMAIN" | grep -E '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$' | head -1)
echo "final_ip=$FINAL_IP" >> $GITHUB_OUTPUT
- name: 输出结果
run: |
echo "download.unity3d.com 的 IP 地址: ${{ steps.domain-ip.outputs.domain_ips }}"
echo "文件最终下载地址的 IP: ${{ steps.final-ip.outputs.final_ip }}"
echo "需要设置Host: download.unity3d.com"
- name: 创建IP列表JSON文件
run: |
# 将逗号分隔的IP转换为JSON数组
DOMAIN_IPS_JSON=$(echo "${{ steps.domain-ip.outputs.domain_ips }}" | tr ',' '\n' | jq -R . | jq -s .)
# 将最终IP包装为单元素数组
FINAL_IP_JSON=$(echo "${{ steps.final-ip.outputs.final_ip }}" | jq -R . | jq -s .)
# 合并为JSON对象并保存
echo "{
\"domain_ips\": $DOMAIN_IPS_JSON,
\"final_ip\": $FINAL_IP_JSON
}" | jq . > UnityCdnIPs.json
# 显示生成的文件内容
cat UnityCdnIPs.json
- name: 发布Unity CDN IP
uses: softprops/action-gh-release@v2
with:
files: |
UnityCdnIPs.json
tag_name: ips