Python脚本实现ipv6的ddns功能!

作者: 14e61d025165 | 来源:发表于2019-03-30 14:33 被阅读11次

    话说在国家的推动下,ipv6地址已经开始优先在三大运营商推广,我自己家用的就是联通宽带100M光纤入户。有一次,不经意间发现,我们的光猫竟然获取到了ipv6地址,于是我开始浮想联翩。

    说干就干,我先是把光猫改成桥接模式,停止拨号,光猫的lan口连接华为路由器的wan口,再通过华为路由器拨号。

    奇迹出现了,我们家的华为路由器包括华为路由器连接的局域网设备,竟然都获取到了ipv6地址。 最可怕的是,每个设备都获取到了一个公网的ipv6地址。

    <tt-image data-tteditor-tag="tteditorTag" contenteditable="false" class="syl1553927564937" data-render-status="finished" data-syl-blot="image" style="box-sizing: border-box; cursor: text; color: rgb(34, 34, 34); font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;"> image

    Python学习群:683380553,有大牛答疑,有资源共享!是一个非常不错的交流基地!欢迎喜欢Python的小伙伴!

    <input class="pgc-img-caption-ipt" placeholder="图片描述(最多50字)" value="" style="box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);"></tt-image> <tt-image data-tteditor-tag="tteditorTag" contenteditable="false" class="syl1553927564941" data-render-status="finished" data-syl-blot="image" style="box-sizing: border-box; cursor: text; color: rgb(34, 34, 34); font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;"> image <input class="pgc-img-caption-ipt" placeholder="图片描述(最多50字)" value="" style="box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);"></tt-image> <tt-image data-tteditor-tag="tteditorTag" contenteditable="false" class="syl1553927564945" data-render-status="finished" data-syl-blot="image" style="box-sizing: border-box; cursor: text; color: rgb(34, 34, 34); font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", "Helvetica Neue", Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: pre-wrap; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial; display: block;"> image

    <input class="pgc-img-caption-ipt" placeholder="图片描述(最多50字)" value="" style="box-sizing: border-box; outline: 0px; color: rgb(102, 102, 102); position: absolute; left: 187.5px; transform: translateX(-50%); padding: 6px 7px; max-width: 100%; width: 375px; text-align: center; cursor: text; font-size: 12px; line-height: 1.5; background-color: rgb(255, 255, 255); background-image: none; border: 0px solid rgb(217, 217, 217); border-radius: 4px; transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);"></tt-image>

    虽然,这些设备获取到的ipv6地址,在哪都可以访问。但是,过1天问题又来了,这个ipv6地址竟然每天自动更新一次。

    为了让我们家的设备,可以有永久不变的地址,于是我打起了aliyun 域名的主意,因为阿里云域名支持AAAA记录的解析,就是支持ipv6地址解析到域名。

    我自己就花费一周时间,自己用python写出了一个ddns脚本,我已经放在了这里 https://gitlab.com/byygyy/ddns_ipv6.git

    总体的思路就是,先调用ailiyun的域名接口,获得一个record id,再利用这个record id再持续地更新域名地AAAA记录。

    最后,你就可以时刻访问你家地设备了。我已经写了一篇完整的文章,”利用ipv6技术,废旧笔记本变成server“: https://www.cnblogs.com/lihuanhuan/p/10617431.html

    相关文章

      网友评论

        本文标题:Python脚本实现ipv6的ddns功能!

        本文链接:https://www.haomeiwen.com/subject/uonjbqtx.html