隔壁网

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

2018-6-11 21:43
782411
准备工作:
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


1.png

安装pip
apt install python-pip


2.png


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

pip install aliyun-python-sdk-alidns
pip install  pyinstaller
3.png


写个用于更新的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) #发起请求




4.png


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


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


5.png


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


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


7.png


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






分享到 :
6 人收藏
隔壁网希捷酷狼8T硬盘,正品国行,3年换新,只需要1270元,赠送论坛邀请码和VIP!

11 个回复

倒序浏览
tvrcfdfe  走火入魔41℃ | 2018-6-12 11:41:05
此帖仅作者可见
momoVIP 互助团队  管理员 | 2018-6-12 22:52:15
此帖仅作者可见
qsamxp  中烧38.5℃ | 2018-6-18 12:08:42
此帖仅作者可见
龙魔  低烧37.3℃ | 2018-6-20 09:31:37
此帖仅作者可见
dreamfrog 互助团队  中烧38.5℃ | 2018-6-20 09:41:57
此帖仅作者可见
dreamfrog 互助团队  中烧38.5℃ | 2018-6-20 09:42:35
此帖仅作者可见
741772828  发热37.1℃ | 2018-6-20 10:27:18
此帖仅作者可见
龙魔  低烧37.3℃ | 2018-6-20 10:36:56
此帖仅作者可见
天一黑就动手  感冒37℃ | 2018-6-20 11:01:28
此帖仅作者可见
adam128oVIP  发热37.1℃ | 2018-6-25 21:54:04
此帖仅作者可见
oldthree_xm  宗师 | 2018-7-3 16:50:07
此帖仅作者可见
懒得打字嘛,点击右侧快捷回复 【本站酷狼4T,750元】
您需要登录后才可以回帖 登录 | 注册

本版积分规则

龙魔

低烧37.3℃

积分: 579 帖子: 57 精华: 1

楼主热帖

淘宝小店

邀请码

VIP会员

微信客服

公众号

微信群

1111活动,群晖每满300减50,可大刀,暗号芝麻开门。 立即登录 立即注册

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

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

返回顶部