写了个小脚本,方便家宽ipv6配合CDN建站。(失控CDN)

写了个小脚本,方便家宽ipv6配合CDN建站。(失控CDN)

因为家庭宽带的ipv6会不停变动,所以即便是使用CDN搭配建站,也要很频繁的修改CDN控制台里的IPV6地址。
所有为了方便,写了个py脚本,自动检测ipv6地址是否有变化,如果有就自动提交到CDN控制台。

需要使用python3,所以需要安装好。

sudo apt install python3

root@astarry:/# python3 --version
Python 3.8.10


#就OK了。

记得先开启失控CDN的api功能。

1、脚本

import requests
import json
import requests
import time
url = 'https://user.cdn1.vip/v1/sites/****'  ##***填入CDN的网站ID

def getIPv6Address():
    text = requests.get('https://v6.ident.me').text
    return text


if __name__ == "__main__":
    print(getIPv6Address())


lastAddress=""
while True:
    ipAddress = getIPv6Address()
    data = {
   "backend": [{"index": 0, "state": "up", "addr": ipAddress, "weight": "1"}]
}
    headers={
    "api-key": "",  ##填入自己的api key
    "api-secret": "" ##填入自己的api secret
}
    if lastAddress!=ipAddress:
        response = requests.put(url, data=json.dumps(data),headers=headers)
        print(response.json())
        lastAddress=ipAddress
        time.sleep(60)
    else:
        print("IP地址未发生变化")
        time.sleep(60)
        

ps:此脚本只会修改CDN的源站IP地址,且只能用于IPV6。


2、使用systemd作为服务运

使用文本编辑器(如vim)在 /etc/systemd/system 目录下创建一个 cdn.service 文件,用于配置此脚本服务。

sudo vim /etc/systemd/system/cdn.service

写入内容:

[Unit]
Description=cdn server
Afteer=network.target
Wants=network.target

[Service]
Type=simple
#启动脚本的命令,需要替换成脚本的存放位置。
ExecStart=/usr/bin/python3 /home/astarry/123/cdn.py  
Restart=always

[Install]
WantedBy=multi-user.target

保存退出即可。

#启动
systemctl start cdn
#重启
systemctl restart cdn
#查看cdn状态
systemctl status cdn   

3、将cdn.service设置开机自启

systemctl enable cdn

这样就不用担心光猫重启,或者断网重连导致ipv6变动,CDN无法访问到源站的情况了。