最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python腳本實現(xiàn)DNSPod DNS動態(tài)解析域名

 更新時間:2015年02月14日 10:57:57   投稿:junjie  
這篇文章主要介紹了Python腳本實現(xiàn)DNSPod DNS動態(tài)解析域名,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下

閑暇之余,在家里自建了個服務器,因為用的小區(qū)寬帶,IP位動態(tài)分配。域名解析就是個問題,我的域名一般停放在DNSPod下。DNSPod有提供修改的API,就用Python簡單的實現(xiàn)了一下動態(tài)解析。這樣,就不用安裝花生殼了。 廢話不說,看代碼:

#!/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 制作本地應用搜索工具

    python 制作本地應用搜索工具

    這篇文章主要介紹了python 制作本地應用搜索工具的方法,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-02-02
  • 基于Python開發(fā)一個Instant Messaging(IM)聊天工具

    基于Python開發(fā)一個Instant Messaging(IM)聊天工具

    在現(xiàn)代社會中,即時通訊工具已經(jīng)成為人們日常溝通的重要工具,本文將詳細介紹如何開發(fā)一個簡單的IM聊天工具,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-12-12
  • Python遍歷目錄的4種方法實例介紹

    Python遍歷目錄的4種方法實例介紹

    這篇文章主要介紹了Python遍歷目錄的4種方法實例介紹,本文講解了使用os.popen運行shell列表命令、利用glob模塊、利用os.listdir(推薦)、利用os.walk(推薦)等4種方法,需要的朋友可以參考下
    2015-04-04
  • Python3爬蟲學習之爬蟲利器Beautiful Soup用法分析

    Python3爬蟲學習之爬蟲利器Beautiful Soup用法分析

    這篇文章主要介紹了Python3爬蟲學習之爬蟲利器Beautiful Soup用法,結合實例形式分析了Beautiful Soup的功能、使用方法及相關操作注意事項,需要的朋友可以參考下
    2018-12-12
  • python 接口測試response返回數(shù)據(jù)對比的方法

    python 接口測試response返回數(shù)據(jù)對比的方法

    本篇文章主要介紹了python 接口測試response返回數(shù)據(jù)對比的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Python邊遍歷邊刪除列表元素的幾種方法

    Python邊遍歷邊刪除列表元素的幾種方法

    在 Python 中,邊遍歷邊刪除列表元素通常是一個不推薦的操作,因為它會改變列表的大小,可能會導致一些意料之外的行為,例如,元素被刪除后,列表的索引會發(fā)生變化,可能導致漏掉某些元素或者遍歷到錯誤的位置,所以本文介紹了Python邊遍歷邊刪除列表元素的幾種方法
    2024-12-12
  • python實現(xiàn)移動木板小游戲

    python實現(xiàn)移動木板小游戲

    這篇文章主要為大家詳細介紹了python實現(xiàn)移動木板小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • Python實現(xiàn)按照指定要求逆序輸出一個數(shù)字的方法

    Python實現(xiàn)按照指定要求逆序輸出一個數(shù)字的方法

    這篇文章主要介紹了Python實現(xiàn)按照指定要求逆序輸出一個數(shù)字的方法,涉及Python針對字符串的遍歷、判斷、輸出等相關操作技巧,需要的朋友可以參考下
    2018-04-04
  • 用Python實現(xiàn)等級劃分

    用Python實現(xiàn)等級劃分

    大家好,本篇文章主要講的是用Python實現(xiàn)等級劃分,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • python微信撤回監(jiān)測代碼

    python微信撤回監(jiān)測代碼

    這篇文章主要為大家詳細介紹了python微信撤回監(jiān)測代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04

最新評論

都安| 晴隆县| 阿克| 秭归县| 铁岭县| 拜泉县| 巨鹿县| 温宿县| 安宁市| 平凉市| 巴彦淖尔市| 长乐市| 绿春县| 桦川县| 剑川县| 班玛县| 图木舒克市| 镇平县| 灯塔市| 墨脱县| 廉江市| 资兴市| 舒城县| 六安市| 铁力市| 罗源县| 东台市| 土默特左旗| 礼泉县| 八宿县| 白朗县| 济阳县| 莆田市| 游戏| 安庆市| 清徐县| 特克斯县| 靖宇县| 陆川县| 缙云县| 彩票|