1. 程式人生 > 其它 >阿里雲API實現DDNS

阿里雲API實現DDNS

#!/usr/bin/env python
#coding=utf-8

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkcore.auth.credentials import AccessKeyCredential
from aliyunsdkcore.auth.credentials import StsTokenCredential
from aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import UpdateDomainRecordRequest
from cProfile import label
from turtle import goto
import requests
import os
import re
import socket
import time

def synfun():
#獲取本地公網ip
url = 'http://pv.sohu.com/cityjson?ie=utf-8'
respon = requests.get(url)
wan_ip = re.search(r'((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}',respon.content.decode()).group()
print(wan_ip)
myaddr = socket.getaddrinfo('<<你的域名地址>>', 'http')
old_ip = myaddr[0][4][0]
print(old_ip)
if(old_ip == wan_ip):
return
print('submit ddns')
credentials = AccessKeyCredential('LTAI4G13adob6x********', 'KOO99y2ftCmSmsXxey5******')
# use STS Token
# credentials = StsTokenCredential('<your-access-key-id>', '<your-access-key-secret>', '<your-sts-token>')
client = AcsClient(region_id='cn-hangzhou', credential=credentials)

request = UpdateDomainRecordRequest()
request.set_accept_format('json')
request.set_RecordId("742717243099273216")
request.set_RR("ddns")
request.set_Type("A")
request.set_Value(wan_ip)

response = client.do_action_with_exception(request)
# python2: print(response)
print(str(response, encoding='utf-8'))

while 1==1:
synfun()
time.sleep(3600)