IPV6实现DDNS动态域名

本文介绍了随着IPV6的普及,如何在智能路由器上配置和使用IPV6 DDNS服务。大部分路由器默认不支持IPV6 DDNS,但通过每步动态域名服务可以实现。详细步骤包括获取本地IPV6地址,根据API进行HTTP请求更新域名,以及利用JAVA和CURL创建自动更新器。最后,生成可执行JAR文件以实现后台静默更新。

随着IPV6的普及,极大的丰富了IP数据库的容量,可用数量可做到给每粒沙子分配IP的程度。

市面上70%路由器默认不开启IPV6、只有30%默认开启IPV6,开启IPV6需要进行测试,以小米祖传断流王路由器AX9000为例,开启IPV6后,需要设置防火墙关闭才可以允许数据入站。

现在市场上的路由器默认不支持IPV6 DDNS,普遍是IPV4 DDNS (一个内网IPv4要DDNS何用)

也有为数几家公司提供IPV6动态域名服务、目前再用的是每步动态域名。

下面是网站的说明:

 本站IPV6解析支持登陆一次解析一个路由器下所有IPV6设备的域名

    本功能是提供IPV6解析,因为IPV6基本固定,故直接复制到这里提交就可解析出来,注册每步域名然后提交IPV6,就可以解析成功。提交后可以通过访问Online Ping Tool (IPv4 & IPv6) 来测试解析结果
 

      欢迎直接在你软件或设备里嵌入IPV6动态域名解析,方法是直接提交
http://ipv6.meibu.com/?id=123&name=aaa.noip.cn&pwd=abc&ipv6=2001:da8::36
这里的ID是识别码,aaa.noip.cn 换成你的域名,abc换成你的密码,IPV6地址换成你的,即可
注意:你软件一定要先判断IP是否改变,改变了再提交,如果做成不论改变与否都提交的方式,一来解析不稳定,二来我们系统会自动封杀这个域名,造成你无法使用
返回"chenggong"为成功,"chongfu"重复提交,"err1"域名写错,"err2"密码写错,"daoqi"域名到期

如想对外发布你做的客户端,请联系我们获取识别码, 支持自己的任意顶级域名
使用你的客户端注册部分收费域名收入的30%归你,此收益长期有效

根据官网提供的API,注册好账户后只需要提取本地IPV6更新即可:

具体HTTP请求格式:

http://ipv6.meibu.com/?id=123&name=aaa.noip.cn&pwd=abc&ipv6=2001:da8::36...

有三个参数要修改:name、pwd、ipv6 分别对应域名,密码,IPV6地址

使用JAVA结合CURL即可实现一个简单的IPV6自动监视更新器。

/**
 * 
 */
package main.ex;

import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.List;

/**
 * @author Administrator
 *
 */
public class Refresher {

	/**
	 * 
	 */
	public Refresher() {
		// TODO Auto-generated constructor stub
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String CURRENT_IPV6 = "EMPTY";
		
		while(true) {
			
			//更新模拟POST
			String NEW_IPV6 = GetComputerIPV6();
			if(!CURRENT_IPV6.equals(NEW_IPV6)) {
				updateDDNS(NEW_IPV6);
				CURRENT_IPV6 = NEW_IPV6;
			}
            //5秒轮巡监视IPV6变换并更新
			try {
				Thread.sleep(1000 *5);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			
		}
		
		

	}
	public static void updateDDNS(String ipv6) {
		String cmd = "C:\\curl-8.0.1_6-win64-mingw\\bin\\curl.exe "
				+" -X GET \"http://ipv6.meibu.com/?id=123&name=动态域名&pwd=密码&ipv6="+ipv6+"\"";
		try {
			Process proc = Runtime.getRuntime().exec(cmd);
            //...命令行运行结果输出的代码(略)
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		System.out.println("New IPV6 updated.");

	}
	public final static String GetComputerIPV6() {
	    
		String ipv6 = null;
		
            try {
            	System.out.println("[Local IPV6]");
				for (InetAddress it : InetAddress.getAllByName(System.getenv().get("COMPUTERNAME"))) {
				    System.out.println(it);
                    //筛选公网IPV6 2048 2409 240e
				    if(ipv6 == null & it.toString().contains("/240")) {
				    	ipv6 = it.toString();
				    }
				}
//				InetAddress[] ips = InetAddress.getAllByName(System.getenv().get("COMPUTERNAME"));
//				ipv6 = ips[ips.length - 1].toString();
			} catch (UnknownHostException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
            System.out.println("\nSelect ipv6 is "+(ipv6 = ipv6.substring(ipv6.indexOf('/')+1,ipv6.length())));
            return ipv6;
	    
	}

}

导出为为可执行JAR格式,直接运行即可后台静默更新IPV6 DDNS,显示运行则在CMD命令行运行 java -jar xxx.jar

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值