跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 宽带公网 IP,有没有开源的类似 ddns 实现脚本,自动获取 ip,并把 ip 写入到 cloudflare 的 dns 记录里
未分類
30 8 月 2021

宽带公网 IP,有没有开源的类似 ddns 实现脚本,自动获取 ip,并把 ip 写入到 cloudflare 的 dns 记录里

宽带公网 IP,有没有开源的类似 ddns 实现脚本,自动获取 ip,并把 ip 写入到 cloudflare 的 dns 记录里

資深大佬 : guanyin9cn 11

RT,
有 公网 ip,但 ip 是变化的,有没有 脚本 获取 本机 ppp+ 上的 ip 地址,通过 cloudflare api 修改 dns 记录
大佬有話說 (21)

  • 資深大佬 : wangbenjun5

    自己写个很简单啊,你在服务器上面写个 web 服务,获取请求者的 ip,记录下来,如果变了就请求 api 修改 dns 记录不就行了。
    然后自己路由器(智能路由)用 crontab 整个定时访问这个服务。。。
    完美解决!

  • 主 資深大佬 : guanyin9cn

    @wangbenjun5 谢谢,你说的略显麻烦,我刚自行搜了下,找到了方法,发在了宽带区
    v2ex.com/t/799135

  • 資深大佬 : wangbenjun5

    @guanyin9cn 只要能获取 ip,都好办,自己服务器写个 web 服务,用 go 或者 php 也就几行代码,胜在稳定可控。至于光猫或者路由器上面直接命令获取,必须得改路由器上面拨号,有点麻烦。

  • 資深大佬 : f165af34d4830eeb

    openwrt 的 ddns 插件符合你的要求,而且支持多家 dns 服务商。

  • 資深大佬 : jakehu

    https://github.com/NewFuture/DDNS

  • 資深大佬 : boris93

    正好我自己写的一个小玩意完美符合需求
    https://github.com/boris1993/dnsupdater
    代码可能有点丑,但确实能用

  • 資深大佬 : FrankAdler

    https://gist.github.com/fengqi/0d5979c1a15c678db2c260970f98183b

  • 資深大佬 : Tink

    这个随便一搜一大堆。。。

  • 資深大佬 : flynaj

    ddns 是路由器的基本功能。openwrt 直接支持。

  • 資深大佬 : Tumblr

    大佬们的好厉害啊,一个小功能也可以写成鸿篇巨制,我只有几行:
    #!/bin/sh
    myip=`curl ‘https://api.ipify.org’` > /dev/null 2>&1
    curl -X PUT https://api.cloudflare.com/client/v4/zones/<zone_id>/dns_records/<record_id>
    -H “X-Auth-Email: <[email protected]>”
    -H “X-Auth-Key: <auth_token>”
    -H “Content-Type: application/json”
    –data “{“type”:”A”,”name”:”<DNS_record>”,”content”:”$myip”,”ttl”:120,”proxied”:false}”
    > /dev/null 2>&1

  • 主 資深大佬 : guanyin9cn

    @FrankAdler #7 用 sed 正则表达式匹配,代替 jq 处理 json
    获取
    zone_id=echo $zone_response | sed -E “s/.+”result”:[{“id”:”([a-f0-9]+)”.+/1/g”
    record_id=echo $record_response | sed -E “s/.+”result”:[{“id”:”([a-f0-9]+)”.+/1/g”
    实测可用

  • 資深大佬 : hasdream

    老毛子( PADAVAN ) 路由器固件支持这个功能 (愉快使用 2 年多了)

  • 資深大佬 : iphoneXr

    @Tumblr 我的第一反应也是找到 cloudflare 的 api 接口 直接 curl 一下
    感谢实现了

  • 主 資深大佬 : guanyin9cn

    @Tumblr #10 zone_id 一般不会变,除非删除了域名。record_id 会随着删除 A 记录而发生变化。写的简单,维护起来麻烦。

  • 主 資深大佬 : guanyin9cn

    @boris93 go 语言实现,json 解析起来会比较方便。

  • 資深大佬 : black938

    https://github.com/jeessy2/ddns-go
    go 语言实现 打包个二进制扔路由器跑都行

  • 資深大佬 : Loku

    @Tumblr 我也是这样写的

  • 資深大佬 : superszy

    现成的啊,openwrt 的 ddns 也有 cf,编译时候选上就行了。
    如果想自己 docker 部署的话也很多,比如这个 https://github.com/wddwycc/cf_ddns

  • 資深大佬 : Tumblr

    @guanyin9cn #14 为什么要删除 A 记录呢?

  • 資深大佬 : sam014

    ddns-go

  • 資深大佬 : boris93

    @guanyin9cn #15 更主要的原因是性能要求低。最早我是让它跑在路由器上的,Java 和 python 不可能,c 我不会,最后选择 go

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具