最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

Python脚本实现DNSPodDNS动态解析域名

来源:懂视网 责编:小采 时间:2020-11-27 14:40:13
文档

Python脚本实现DNSPodDNS动态解析域名

Python脚本实现DNSPodDNS动态解析域名:闲暇之余,在家里自建了个服务器,因为用的小区宽带,IP位动态分配。域名解析就是个问题,我的域名一般停放在DNSPod下。DNSPod有提供修改的API,就用Python简单的实现了一下动态解析。这样,就不用安装花生壳了。 废话不说,看代码: #!/usr/bi
推荐度:
导读Python脚本实现DNSPodDNS动态解析域名:闲暇之余,在家里自建了个服务器,因为用的小区宽带,IP位动态分配。域名解析就是个问题,我的域名一般停放在DNSPod下。DNSPod有提供修改的API,就用Python简单的实现了一下动态解析。这样,就不用安装花生壳了。 废话不说,看代码: #!/usr/bi

闲暇之余,在家里自建了个服务器,因为用的小区宽带,IP位动态分配。域名解析就是个问题,我的域名一般停放在DNSPod下。DNSPod有提供修改的API,就用Python简单的实现了一下动态解析。这样,就不用安装花生壳了。 废话不说,看代码:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import httplib, urllib, urllib2
import time
import sys,os
import re
import json

username = 'xxxx' #账号
password = 'xxx' #密码
format = 'json'

domain = [u'www.youdomain.com'] #要解析的域名

def get_domain_info(domain):
 domain_split = domain.split('.')
 domain_split_len = len(domain_split)
 maindomain = domain_split[domain_split_len - 2] + '.' + domain_split[domain_split_len - 1]
 return maindomain,domain

params = {'login_email':username,'login_password':password,'format':format}

def request(action, params, method = 'POST'):
 headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/json"}
 conn = httplib.HTTPSConnection("dnsapi.cn")
 conn.request(method, '/' + action, urllib.urlencode(params), headers)
 response = conn.getresponse()
 data = response.read()
 conn.close()
 if response.status == 200:
 return data
 else:
 return None

def get_my_domain_id():
 data = request('Domain.List',params)
 data = json.loads(data)
 domainlist = data.get('domains')
 domaninfo = {}
 for d in domainlist:
 domaninfo[d.get('name')] = d.get('id')
 return domaninfo

def get_my_domain_record_id(domain_id):
 params['domain_id'] = domain_id
 data = request('Record.List',params)
 data = json.loads(data)
 if data.get('code') == '10':
 return None
 domainname = data.get('domain').get('name')
 record_list = data.get('records')
 record = {}
 for r in record_list:
 if r.get('type') == 'A':
 key = r.get('name') != '@' and r.get('name') + '.' + domainname or domainname
 record[key] = {'id':r.get('id'),'value':r.get('value')}
 return record

def changerecord(domain,domain_id,record_id,ip):
 params['domain_id'] = domain_id
 params['record_id'] = record_id
 params['record_type'] = 'A'
 params['record_line'] = '默认'
 params['sub_domain'] = domain
 params['ttl'] = 600
 params['value'] = ip
 data = request('Record.Modify',params)

def getip():
 url = 'http://iframe.ip138.com/ic.asp'
 response = urllib2.urlopen(url)
 text = response.read()
 ip = re.findall(r'd+.d+.d+.d+', text)
 return ip[0] or None

def updatedomaininfo(domain):
 m,sub_m = get_domain_info(domain)
 domain_id = my_domain_id_list.get(m)
 record_list = get_my_domain_record_id(domain_id)
 if record_list == None:
 return None
 rocord_info = record_list.get(sub_m)
 record_ip = rocord_info.get('value')
 record_id = rocord_info.get('id')
 return sub_m,record_ip,record_id,domain_id

if __name__ == '__main__':
 my_domain_id_list = get_my_domain_id()
 try:
 for dm in domain:
 domaindata = updatedomaininfo(dm)
 if domaindata == None:
 continue
 dnsdomain,dnsdmainip,record_id,domain_id = domaindata
 domain_name = dnsdomain.split('.')[0]
 ip = getip()
 if ip == dnsdmainip:
 continue
 else:
 changerecord(domain_name,domain_id,record_id,ip)
 except:
 pass

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

Python脚本实现DNSPodDNS动态解析域名

Python脚本实现DNSPodDNS动态解析域名:闲暇之余,在家里自建了个服务器,因为用的小区宽带,IP位动态分配。域名解析就是个问题,我的域名一般停放在DNSPod下。DNSPod有提供修改的API,就用Python简单的实现了一下动态解析。这样,就不用安装花生壳了。 废话不说,看代码: #!/usr/bi
推荐度:
标签: dns 域名 脚本
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top