java ddns_简单ddns的实现

coredns +

packageorg.rx.service;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;importlombok.RequiredArgsConstructor;importlombok.extern.slf4j.Slf4j;importorg.apache.commons.io.FileUtils;importorg.rx.common.AppConfig;importorg.rx.core.Tasks;importorg.rx.net.http.HttpClient;importorg.springframework.stereotype.Service;importjavax.annotation.PostConstruct;importjava.nio.charset.StandardCharsets;import staticorg.rx.core.Contract.eq;import staticorg.rx.core.Contract.quietly;

@Slf4j

@Service

@RequiredArgsConstructorpublic classScheduleService {private finalAppConfig config;private volatileString lastIp;

@PostConstructpublic voidinit() {

Tasks.schedule(()->{

HttpClient client= newHttpClient();

quietly(()->{

String url= "https://api.myip.com";

JSONObject json=JSON.parseObject(client.get(url));if (!eq(lastIp = json.getString("ip"), lastIp)) {

log.info("refresh dns db");

FileUtils.writeStringToFile(config.getDnsDb(), String.format("f-li.cn.\t\tIN\tSOA dns.f-li.cn. rx.f-li.cn. 2020020414 7200 3600 1209600 3600\n" +

"cloud.f-li.cn.\tIN\tA\t103.126.103.83\n" +

"v.f-li.cn.\t\tIN\tA\t%s\n", lastIp), StandardCharsets.UTF_8, false);

}

});

}, config.getJobDelaySeconds()* 1000);

}

}

package org.rx.service;

import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import lombok.RequiredArgsConstructor;import lombok.extern.slf4j.Slf4j;import org.apache.commons.io.FileUtils;import org.rx.common.AppConfig;import org.rx.core.Tasks;import org.rx.net.http.HttpClient;import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;

import java.nio.charset.StandardCharsets;

import static org.rx.core.Contract.eq;import static org.rx.core.Contract.quietly;

@Slf4j@Service@RequiredArgsConstructorpublic class ScheduleService {    private final AppConfig config;    private volatile String lastIp;

@PostConstruct    public void init() {        Tasks.schedule(() -> {            HttpClient client = new HttpClient();

quietly(() -> {                String url = "https://api.myip.com";                JSONObject json = JSON.parseObject(client.get(url));                if (!eq(lastIp = json.getString("ip"), lastIp)) {                    log.info("refresh dns db");                    FileUtils.writeStringToFile(config.getDnsDb(), String.format("f-li.cn.\t\tIN\tSOA dns.f-li.cn. rx.f-li.cn. 2020020414 7200 3600 1209600 3600\n" +                            "cloud.f-li.cn.\tIN\tA\t103.126.103.83\n" +                            "v.f-li.cn.\t\tIN\tA\t%s\n", lastIp), StandardCharsets.UTF_8, false);                }            });        }, config.getJobDelaySeconds() * 1000);    }}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
lluci-app-aliddns_0.4.0-1_all.ipk是一个软件包文件。它是一种OpenWrt操作系统所使用的软件包格式,用于安装在支持OpenWrt系统的路由器上。 具体而言,lluci-app-aliddns_0.4.0-1_all.ipk是一个用于阿里云域名解析的插件。它能够帮助用户在路由器上实现动态域名解析,即将用户的公网IP地址与域名进行绑定,使得用户可以通过域名访问自己的网络设备而不需要记住IP地址。 这个软件包的名称是lluci-app-aliddns,版本号为0.4.0-1,说明它是第一个版本的0.4.0功能的更新。它适用于所有的硬件架构(all),因为它是一个纯软件的包,不涉及特定硬件的依赖。 要安装lluci-app-aliddns_0.4.0-1_all.ipk软件包,首先需要将该ipk文件传输到OpenWrt路由器上,可以通过SSH连接或者使用文件传输协议(如SCP)来实现。之后,通过OpenWrt系统的包管理器(如opkg)执行安装命令,即可将该软件包安装到路由器上。 安装完成后,用户可以在OpenWrt路由器的管理界面找到lluci-app-aliddns插件,并进行相应的配置。用户需要提供阿里云的Access Key、Secret Key等信息,以及要解析的域名和子域名信息。配置完成后,该插件将与阿里云进行交互,实现动态域名解析功能。 总之,lluci-app-aliddns_0.4.0-1_all.ipk是一个OpenWrt路由器上的阿里云域名解析插件,通过安装和配置该插件,用户可以方便地实现动态域名解析功能,从而更便捷地管理自己的网络设备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值