背景介紹python
阿里雲界面查詢相關域名須要登陸阿里雲控制檯進行管理查詢相關域名信息. (1).登陸阿里雲鬚要阿里雲帳號 和相關登陸權限 (2).控制檯可能存在誤操做風險; json
針對域名可管理性故開發抓取域名腳本抓取域名操做流程;api
(1).阿里雲控制檯申請ak,sk (程序操做權限和受權密碼)app
(2).安裝阿里雲核心sdk包以及雲解析包;dom
(3).postman發送請求攜帶請求參數;ide
(4).返回雲端參數;post
3.安裝阿里雲域名抓取sdk支持包阿里雲
pip ×××tall aliyun-python-sdk-core-v3==2.13.3 pip ×××all aliyun-python-sdk-alidns==2.0.7
4.實例代碼;code
####阿里雲域名路由###### @domainUrl.route('/aliyun/api', methods=['GET', 'POST', 'DELETE']) def aadalimainMain(): if request.method == "GET": msg = "不支持此方法" return Response(json.dumps({"code": 1, "data": msg + request.method}), mimetype='application/json') elif request.method == "POST": Data = request.get_json() domainName = Data.get('domain_name') getdomain = alidomainManager() data = getdomain.qeuryDomain(domainName) return Response(json.dumps({"code": 0, "len": len(data), "data": data}), mimetype='application/json') elif request.method == "delete": pass else: msg = "不支持此方法" return Response(json.dumps({"code": 1, "data": msg + request.method}), mimetype='application/json') class alidomainManager(object): def __init__(self): self.client = AcsClient("程序的ak","程序sk", "區域") def qeuryDomain(self, domain): domainlist = self.getaliDomainGroup() if domain in domainlist: return self.getaliDomain(domain) else: return "沒有此域名信息" #######獲取分頁頁碼和每頁數據進行遞歸查詢域名數量######### def getaliPageSize(self, fun, parameter1, parameter2, domain=None, pageNumber=1, pageSize=100, D=[]): try: request = fun request.set_accept_format('json') request.set_PageSize(pageSize) if domain: request.set_DomainName(domain) request.set_PageNumber(pageNumber) response = json.loads(self.client.do_action_with_exception(request)) if response is not None and len(response.get(parameter1).get(parameter2)) > 0: Record_list = response.get(parameter1).get(parameter2) if Record_list and len(Record_list) > 0: for Record in Record_list: D.append(Record) self.getaliPageSize(fun, parameter1, parameter2, domain, pageNumber + 1, pageSize, D) return D except Exception as e: msg = "系統內部,參數不足" return e + msg ##########獲取域名############ def getaliDomain(self, domain): DomainRecordsKey = "DomainRecords" RecordKey = "Record" return self.getaliPageSize(DescribeDomainRecordsRequest(), DomainRecordsKey, RecordKey, domain, pageNumber=1, pageSize=100, D=[]) ###########獲取所有域名列表########### def getaliDomainGroup(self): Doma×××Key = "Doma×××" Domain = "Domain" D = [] for i in self.getaliPageSize(DescribeDoma×××Request(), Doma×××Key, Domain, None, pageNumber=1, pageSize=100, D=[]): D.append(i.get("DomainName")) return D
5.執行域名結果輸出;
orm