liuyongqing1 发表于 2018-9-29 17:00

树莓派加python实现ddns功能,并通过企业微信通知IP地址变更

本帖最后由 liuyongqing1 于 2019-3-1 11:58 编辑

这个python脚本原理是检查当前环境的公网IP地址,然后判断与DNS记录的地址是否一致,一致什么也不提示,不一致会修改记录,并发送到企业微信通知。
我目前是把脚本放到树莓派(ubuntu系统)的定时任务,每隔5分钟就执行检测。之所以放到树莓派里是因为省电可以24小时开机。
脚本里会用到阿里云的Accessskeys和企业微信的,具体看下图。

第一步:登陆阿里云,鼠标移动到头像处,进入accesskeys
      

第二步:点击显示,需要手机验证码,即可获取key与secret


第三步:登陆企业微信,企业微信个人也可以申请团队,免费且不需要执照什么的。
如下图取得企业ID对应脚本里的corpid



第四步:进入目标程序



第五步:取得agnetid 与secret 对应脚本里的 corpsecret和Agentid




然后下面说下脚本
首先要安装依赖
pip3.6 install -r requirements.txt (这里都是linux环境 ,windows 如果想用可能需要安装vistual studio)
然后修改wech.py即可


上图数字对应
1 对应accesskey
2 对应 access_secret
3 对应微信企业ID
4 对应应用的secret
5 对应 应用的agentid
6 对应 购买的域名 例如abc.com千万不可写www.abc.com
7 同6
8 和 9 一般是一样的,是www.abc.com中的www(www可以替换成其他,前提阿里上要有的这个记录)
接下来可以使用linux或是windows定时任务跑起来
计划任务:
    */5 * * * * /home/pi/.pyenv/shims/python3 /home/pi/Documents/weixin_msg/wech.py>>/dev/null 2>&1

如果不用企业微信可以把相应代码删除掉例如:
    Access_Key=""    Access_Secret=""
    client = AcsClient(
      Access_Key,
      Access_Secret,
      "regiond(cn-shenzhen)"
    );
    msg=wx.Get_Ip()
    Doamin_IP=list_dns_record('abc.com')
      #Doamin_IP=list_dns_record('域名地址(不带www)')
    if str(Doamin_IP.strip()) != str(msg.strip()):
      edit_dns_record('abc.com','www','www','A',msg.strip())
程序运行结果如下图



好久没发过贴了 不知道怎么排板,等有时间好好研究研究。这里声明一下dns部分借鉴了github上面一份代码,但是地址忘了,感谢他~我只是在这基础上做了些修改及适配python3
附件及地址

https://pan.baidu.com/s/1pH50A42DT2XKcrDX48Y9ow   密码:ya5y

liuyongqing1 发表于 2018-9-30 09:59

365milesroad 发表于 2018-9-29 18:54
可以同来做什么啊?内网穿透?

额内网穿透不可以。但是给联通打个电话说明要公网IP 他会给你分配公网IP。这样你可以通过你的域名连接家里的内网了。就是实现的以前路由器的DDNS功能。我家猫上的DDNS功能根本不能用。所以我才自己写个脚本。

liuyongqing1 发表于 2018-9-29 17:39

快乐小风 发表于 2018-9-29 17:35
看不懂 , 树莓派在上面地方用的呢

是不是我文字码的有问题怎么好多人看不懂

liuyongqing1 发表于 2018-9-29 17:09

本帖最后由 liuyongqing1 于 2018-9-29 17:13 编辑

忘了把代码发上来。。。已经整合进去了

路人辅助 发表于 2018-9-29 17:16

楼主辛苦了,虽然看不懂,但是挺羡慕你的

liuyongqing1 发表于 2018-9-29 17:20

路人辅助 发表于 2018-9-29 17:16
楼主辛苦了,虽然看不懂,但是挺羡慕你的

羡慕什么:lol

快乐小风 发表于 2018-9-29 17:35

看不懂 , 树莓派在上面地方用的呢

365milesroad 发表于 2018-9-29 18:54

可以同来做什么啊?内网穿透?

无上归一 发表于 2018-9-30 06:56

可以同来做什么啊?内网穿透?

小黑LLB 发表于 2019-2-12 13:55

好厉害的样子 支持一下 楼主 {:1_921:}
页: [1] 2
查看完整版本: 树莓派加python实现ddns功能,并通过企业微信通知IP地址变更