隔壁网

[讨论/分享] 用 python 让群晖DDNS更新阿里域名的外网IP

2018-6-11 21:43
27411

来吧兄弟,一起玩一起讨论!

您需要 登录 才可以下载或查看,没有帐号?注册

x
准备工作:
0:  不断折腾的勇气
1:阿里域名一个,开启Access Keys,保存好 Access Key ID 和 Access Key Secret。
2: Linux系统一个,可以用Win10的子系统。
3:   安装WinSCP


安装环境:
进入SU模式,省的反复输密码
sudo su

Linux下安装Python 2.7

apt install python




安装pip
apt install python-pip





安装python 2的依赖包
需要以下四个库:urllib2,bs4,aliyun-python-sdk-alidns,pyinstaller
安装命令:
pip install bs4
pip install urllib2

pip install aliyun-python-sdk-alidns
pip install  pyinstaller



写个用于更新的py程序,代码如下:
# -*- coding: UTF-8 -*-
import urllib2
from bs4 import BeautifulSoup
from aliyunsdkcore import client
from aliyunsdkalidns.request.v20150109 import DescribeDomainRecordsRequest
from aliyunsdkalidns.request.v20150109 import UpdateDomainRecordRequest

#爬取外网IP
url = 'http://www.net.cn/static/customercare/yourip.asp' #显示本机IP的网址,也可以用IP138
req = urllib2.Request(url)
rsp=urllib2.urlopen(req)
html=rsp.read().decode('utf-8',"ignore")
html=BeautifulSoup(html,'html.parser')
iph2=html.h2
myip=iph2.get_text() #解析网站显示的访问IP

#阿里SDK初始化
clt=client.AcsClient('Access Key ID','Access Key Secret','cn-shanghai') #第一个是ID,第二个是密钥,第三个是地区

#读取解析信息
id_r=DescribeDomainRecordsRequest.DescribeDomainRecordsRequest() #创建理解
id_r.set_DomainName('域名') #根域名,比如 baidu.com
id_r.set_RRKeyWord('子域名') #子域名,比如 www
id_re=clt.do_action(id_r) #发起请求

#解析返回数据
xml = BeautifulSoup(id_re,'html.parser') #套用格式
acsip = xml.find('value').string #解析现阿里记录IP
acsid = xml.find('recordid').string #解析recordid

#修阿里改DNS解析
if acsip != myip: #判断本机Ip是否和阿里记录的IP是否一致,不一致就更新
    ur_r=UpdateDomainRecordRequest.UpdateDomainRecordRequest()
    ur_r.set_RR('子域名') #更新的子域名
    ur_r.set_RecordId(acsid) #需要更新的recordid值
    ur_r.set_Type('A') #更新的记录类型
    ur_r.set_Value(myip) #更新IP地址
    ur_re=clt.do_action(ur_r) #发起请求







运行以下Py程序,看看是否正常
python IP更新.py


执行以下没有问题,就用pyinstaller生成运行文件
pyinstaller -F IP更新.py





在此目录下产生了一个dist,里面有一个执行程序,开启群晖22端口,用WinSCP传到群晖中,权限7777



最后在计划任务中添加任务,循环执行。





思路基本如此,python也才学了一个多月,如有问题,期待有大神吧....呵呵....啥?为啥不加上读取TXT傻瓜化,嘿嘿,这个是给爱折腾的人。






分享到 :
6 人收藏

11 个回复

倒序浏览
tvrcfdfe  骨灰 | 2018-6-12 11:41:05
此帖仅作者可见
momo 互助团队  管理员 | 2018-6-12 22:52:15
此帖仅作者可见
qsamxp  亡灵 | 2018-6-18 12:08:42
此帖仅作者可见
龙魔  走火入魔 | 2018-6-20 09:31:37
此帖仅作者可见
dreamfrog 互助团队  走火入魔 | 2018-6-20 09:41:57
此帖仅作者可见
dreamfrog 互助团队  走火入魔 | 2018-6-20 09:42:35
此帖仅作者可见
741772828  高烧40℃ | 2018-6-20 10:27:18
此帖仅作者可见
龙魔  走火入魔 | 2018-6-20 10:36:56
此帖仅作者可见
天一黑就动手  正常36.8℃ | 2018-6-20 11:01:28
此帖仅作者可见
您需要登录后才可以回帖 登录 | 注册

本版积分规则

龙魔

走火入魔

积分: 551 帖子: 33 精华: 1

楼主热帖

微信扫一扫关注公众号,获取注册邀请码!

小黑屋|手机版|Archiver|隔壁网 ( 粤ICP备14056481号-1 )

Powered by Discuz! X3.3 © 2001-2016 Comsenz Inc.

返回顶部