使用aliyun-sdk开发的一个动态域名解析(DDNS)程序

使用crontab定时执行

#!/usr/bin/env python
# coding=utf-8
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import UpdateDomainRecordRequest
from json import load 
from urllib2 import urlopen
from datetime import datetime
import os
os.chdir(os.path.dirname(os.path.abspath(__file__)))

accessKeyId = "<accessKeyId >"
accessSecret = "<accessSecret >"
domainName = "<domainName >"
client = AcsClient(accessKeyId, accessSecret, 'cn-hangzhou')

my_ip = load(urlopen('http://jsonip.com'))['ip']

def main():
    
    try:
        f = open('./ip.txt')
        ip = f.read()
    except IOError as e:
        print e
        ip = ''
    
    if ip != my_ip:
        f = open('./ip.txt','w')
        f.write(my_ip)
        try:
            request1 = UpdateDomainRecordRequest()
            request1.set_accept_format('json')
            request1.set_RecordId("19666219383473152")
            request1.set_Type("A")
            request1.set_RR("ddns")
            request1.set_Value(my_ip)
            response1 = client.do_action_with_exception(request1)
            print "\033[1;32mModify Successful!\033[0m"
        except ServerException as e:
            print "\033[1;31m" + e.get_error_msg() + "\033[0m"
    else:
        print "\033[1;31mIP unchanged\033[0m"


if __name__ == '__main__':
    print
    print datetime.now().strftime( '%Y-%m-%d %H:%M:%S')
    main()

点赞

发表评论

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