闲暇之余,在家里自建了个服务器,因为用的小区宽带,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

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),