首页 > Windows开发 > 详细

使用dnspodapi 实现ddns,适用于树莓派

时间:2014-06-28 11:57:33      阅读:602      评论:0      收藏:0      [点我收藏+]

python版本(适用于树莓派)

 1 #!/usr/bin/env python
 2 #-*-coding:utf-8-*- 
 3 import httplib,urllib
 4 import json
 5 import re,urllib2
 6 import time
 7 
 8 class Getmyip:
 9     def getip(self):
10         try:
11             myip = self.visit("http://www.whereismyip.com/")
12 #           return myip
13         except:
14             try:
15                 myip = self.visit("http://www.bliao.com/ip.phtml")
16 #               return myip
17             except:
18                 try:
19                     myip = self.visit("http://www.whereismyip.com/")
20 #                   return myip
21                 except:   
22                     myip = "So sorry!!!"
23         return myip
24    
25     def visit(self,url):
26         opener = urllib2.urlopen(url)
27         if url == opener.geturl():
28             str = opener.read()
29             asd=re.search(\d+\.\d+\.\d+\.\d+,str).group(0)
30             return asd
31 
32 def setdnspod(newip):
34     params = login_email=xxxxx&login_password=xxxxx&format=json&domain_id=16415545&record_id=67237927&record_line=默认&sub_domain=www&value=+ newip +&record_type=A
35     header = {"Content-type": "application/x-www-form-urlencoded",    
36              "Accept": "text/plain"}    
37     conn = httplib.HTTPSConnection("dnsapi.cn")
38     #获取api版本信息
39     #conn.request("POST","/Info.Version",params,header)
40     #获取domains列表
41     #已知"id": xxxx,"name": "xxxx"
42     #conn.request("POST","/Domain.List",params,header)
43     #设置ddns
44     conn.request("POST","/Record.Modify",params,header)
45     #获取记录列表
46     #已知 "id": "xxxx", "name": "blog",      "id": "xxxx","name": "www",
47     #conn.request("POST","/Record.List",params,header)
48     response = conn.getresponse()
49     #print response.status, response.reason 
50     data = response.read()  
51     #print(data)
52     conn.close()
53     s = json.loads(data)
54     return s["status"]["code"],data
55 
56 if __name__ == __main__:  
57     getmyip = Getmyip()  
58     localip=0  
59     while(1):  
60         time.sleep(1)  
61         tm_str_start = time.strftime(%Y-%m-%d %H:%M:%S,time.localtime(time.time()))
62         print(tm_str_start+\n)
63         localtmp = getmyip.getip()
64         if (localtmp == None):        
65             print(GET LOCAL IP ERROR!\n)
66         else:
67             if (localip != localtmp):
68                 localip = localtmp
69                 code,data = setdnspod(localip)
70                 if (code == 1):
71                     print(set new ip success: + localip +\n)
72                 else:
73                     print(set new ip failed: + code + : + data + \n)
74             else:
75                 print(new ip == old ip+:+localip+:+localtmp+\n)
76 
77  

仅作记录

使用dnspodapi 实现ddns,适用于树莓派,布布扣,bubuko.com

使用dnspodapi 实现ddns,适用于树莓派

原文:http://www.cnblogs.com/hgd7123/p/3798835.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!