使用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()