文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python实现一个简单的dnspod

2023-01-31 02:36

关注

实现一个简单的dnspod解析api:


dnspod api地址:https://www.dnspod.cn/docs/records.html#record-create


#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'chenmingle'

import urllib2
import urllib
import json
import time
import socket


public_dic={}
public_dic["login_token"]=("%s,%s" % ('access_id','access_key'))
public_dic["format"]="json"
headers={}
headers["User-Agent"]="Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"


def getDomainID(domain):
    url="https://dnsapi.cn/Domain.INFO"
    info=public_dic.copy()
    info["domain"]=domain
    request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
    response=urllib2.urlopen(request)
    formatJson=json.load(response)
#    print formatJson["domain"]['id']
#    print formatJson["domain"]
    if formatJson["status"]["code"]!="1":
        return 0
    else:
        return formatJson["domain"]["id"]
    pass
    
    
def getRecordList(domain_id):
    url="https://dnsapi.cn/Record.List"
    info=public_dic.copy()
    info["domain_id"]=domain_id
    request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
    response=urllib2.urlopen(request)
    dnsJson=json.load(response)
#    print dnsJson
    for i in dnsJson['records']:
        print i['id'],i['type'],i['name'],i['line'],i['line_id'],i['value'],i['ttl'],i['enabled']
        
        
def getRecordID(domain_id,record,line_id):
    url="https://dnsapi.cn/Record.List"
    info=public_dic.copy()
    info["domain_id"]=domain_id
    info["sub_domain"]=record
    request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
    response=urllib2.urlopen(request)
    dnsJson=json.load(response)
#    print dnsJson
    for i in dnsJson['records']:
        if i['line_id'] == line_id:
            print i['id'],i['type'],i['name'],i['line'],i['value'],i['ttl'],i['status']
            
            
def createRecord(domain_id,sub_domain,record_type,record_line_id,value):
    url="https://dnsapi.cn/Record.Create"
    info=public_dic.copy()
    info['domain_id']=domain_id
    info['sub_domain']=sub_domain
    info['record_type']=record_type
    info['record_line_id']=record_line_id
    info['value']=value
    request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
    response=urllib2.urlopen(request)
    dnsJson=json.load(response)
    print dnsJson
    
    
def updateRecord(domain_id,sub_domain,record_type,record_line_id,value):
    url="https://dnsapi.cn/Record.List"
    info=public_dic.copy()
    info["domain_id"]=domain_id
    request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
    response=urllib2.urlopen(request)
    dnsJson=json.load(response)
    for i in dnsJson['records']:
        if i['name'] == sub_domain and i['line_id'] == record_line_id:
        record_id=i['id']
        
        
print record_id
    url="https://dnsapi.cn/Record.Modify"
    info=public_dic.copy()
    info['domain_id']=domain_id
    info['record_id']=record_id
    info['sub_domain']=sub_domain
    info['record_type']=record_type
    info['record_line_id']=record_line_id
    info['value']=value
    request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
    response=urllib2.urlopen(request)
    dnsJson=json.load(response)
    print dnsJson
    
    
def updateRecordLine(domain_id,sub_domain,record_type,line_id,record_line_id,value):
    url="https://dnsapi.cn/Record.List"
    info=public_dic.copy()
    info["domain_id"]=domain_id
    request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
    response=urllib2.urlopen(request)
    dnsJson=json.load(response)
    for i in dnsJson['records']:
        if i['name'] == sub_domain and i['line_id'] == line_id:
                record_id=i['id']
                print record_id
    url="https://dnsapi.cn/Record.Modify"
    info=public_dic.copy()
    info['domain_id']=domain_id
    info['record_id']=record_id
    info['sub_domain']=sub_domain
    info['record_type']=record_type
    info['record_line_id']=record_line_id
    info['value']=value
    request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
    response=urllib2.urlopen(request)
    dnsJson=json.load(response)
    print dnsJson
    
    
def statusRecord(domain_id,sub_domain,record_line_id,status):
    url="https://dnsapi.cn/Record.List"
    info=public_dic.copy()
    info["domain_id"]=domain_id
    request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
    response=urllib2.urlopen(request)
    dnsJson=json.load(response)
    for i in dnsJson['records']:
        if i['name'] == sub_domain and i['line_id'] == record_line_id:
                record_id=i['id']
    url="https://dnsapi.cn/Record.Status"
    info=public_dic.copy()
    info['domain_id']=domain_id
    info['record_id']=record_id
    info['status']=status
    request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
    response=urllib2.urlopen(request)
    dnsJson=json.load(response)
    print dnsJson
    
    
def deleteRecord(domain_id,sub_domain,record_line_id):
    url="https://dnsapi.cn/Record.List"
    info=public_dic.copy()
    info["domain_id"]=domain_id
    request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
    response=urllib2.urlopen(request)
    dnsJson=json.load(response)
    for i in dnsJson['records']:
        if i['name'] == sub_domain and i['line_id'] == record_line_id:
                record_id=i['id']
    url="https://dnsapi.cn/Record.Remove"
    info=public_dic.copy()
    info['domain_id']=domain_id
    info['record_id']=record_id
    request=urllib2.Request(url,headers=headers,data=urllib.urlencode(info))
    response=urllib2.urlopen(request)
    dnsJson=json.load(response)
    print dnsJson
    
    
id = getDomainID('xxx.com')
getRecordList(id)
#getRecordID(id,'cml','10=1')
#createRecord(id,'cml','A','0','*.*.*.*')
#updateRecordLine(id,'cml','A','10=1','10=1','*.*.*.*')
#statusRecord(id,'cml','10=1','enabled')
#deleteRecord(id,'cml','10=1')


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯