阿里云动态域名解析 admin 2023-05-23 15:51:01 篇首语:本文由小编为大家整理,主要介绍了阿里云动态域名解析相关的知识,希望对你有一定的参考价值。 1.如果不想用花生壳这类的工具,可以利用阿里云的动态域名解析api来动态解析域名。 2.原理就是定期检查ip是否改变,如果改变就利用api重新解析域名 一、pom.xml <dependencies> <dependency> <groupId>com.squareup.retrofit2groupId> <artifactId>retrofitartifactId> <version>2.2.0version> dependency> <dependency> <groupId>com.squareup.retrofit2groupId> <artifactId>converter-gsonartifactId> <version>2.2.0version> dependency> <dependency> <groupId>com.squareup.okhttp3groupId> <artifactId>okhttpartifactId> <version>3.7.0version> dependency> <dependency> <groupId>com.aliyungroupId> <artifactId>aliyun-java-sdk-alidnsartifactId> <version>2.0.1version> dependency> <dependency> <groupId>com.aliyungroupId> <artifactId>aliyun-java-sdk-coreartifactId> <version>3.5.0version> dependency> dependencies> 二、 import com.aliyuncs.DefaultAcsClient;import com.aliyuncs.IAcsClient;import com.aliyuncs.alidns.model.v20150109.DescribeDomainRecordsRequest;import com.aliyuncs.alidns.model.v20150109.DescribeDomainRecordsResponse;import com.aliyuncs.alidns.model.v20150109.UpdateDomainRecordRequest;import com.aliyuncs.alidns.model.v20150109.UpdateDomainRecordResponse;import com.aliyuncs.profile.DefaultProfile;import com.aliyuncs.profile.IClientProfile;import http.RetroFitHelper;import java.util.List;public class start private static IAcsClient client = null; static String regionId = "cn-hangzhou"; //必填固定值,必须为“cn-hanghou” String accessKeyId = ""; // your accessKey String accessKeySecret = "";// your accessSecret //或者设置为空,然后下边有从阿里云获取的方法,只是不建议每次都去阿里云获取。 IClientProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret); // 若报Can not find endpoint to access异常,请添加以下此行代码 // DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", "Alidns", "alidns.aliyuncs.com"); client = new DefaultAcsClient(profile); public static void main(String[] args) throws Exception String domain = "xxx.com"; //顶级域名 String rr = "yyy";//子域名 DescribeDomainRecordsResponse.Record record = GetRecordId(domain, rr); String recordId = record.getRecordId(); String ip = record.getValue(); if (recordId==null|| recordId == "") return; if (ip==null|| ip == "") return; String curIp = RetroFitHelper.getCurIp(); //获取对外ip地址 if (!ip.equals(curIp)) UpdateDomainRecordRequest request = new UpdateDomainRecordRequest(); request.setRecordId(recordId); request.setRR(record.getRR()); request.setType(record.getType()); request.setValue(curIp); request.setTTL(record.getTTL()); request.setLine(record.getLine()); request.setPriority(10l); UpdateDomainRecordResponse response = client.getAcsResponse(request); System.out.println(response.getRecordId()); private static DescribeDomainRecordsResponse.Record GetRecordId(String domainString,String rr) DescribeDomainRecordsRequest request = new DescribeDomainRecordsRequest(); request.setDomainName(domainString); request.setRRKeyWord(rr); DescribeDomainRecordsResponse response; // describeRegionsRequest.setProtocol(ProtocolType.HTTPS); //指定访问协议 // describeRegionsRequest.setAcceptFormat(FormatType.JSON); //指定api返回格式 // describeRegionsRequest.setMethod(MethodType.POST); //指定请求方法 // describeRegionsRequest.setRegionId("cn-hangzhou");//指定要访问的Region,仅对当前请求生效,不改变client的默认设置。 try response = client.getAcsResponse(request); List.Record> list = response.getDomainRecords(); for (DescribeDomainRecordsResponse.Record record : list) if (domainString.equals(record.getDomainName()) && rr.equals(record.getRR())) return record; catch (Exception e) e.printStackTrace(); return null; 以上是关于阿里云动态域名解析的主要内容,如果未能解决你的问题,请参考以下文章 #yyds干货盘点#一个方便的小系统,用于 CSS 中的动画入口 js获取上一个月份 您可能还会对下面的文章感兴趣: 相关文章 浏览器打不开网址提示“ERR_CONNECTION_TIMED_OUT”错误代码的解决方法 如何安装ocx控件 VMware的虚拟机为啥ip地址老是自动变化 vbyone和EDP区别 linux/debian到底怎么重启和关机 苹果平板键盘被弄到上方去了,如何调回正常? 机器学习常用距离度量 如何查看kindle型号