阿里域名调用api解析

第一步获取accessKeyId,accessKeySecret

新建自己的工程引入阿里sdk包

<dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-alidns</artifactId>
            <version>2.0.1</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>2.3.8</version>
        </dependency>

 

 

 

import java.util.List;

import com.alibaba.fastjson.JSON;
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.DescribeDomainRecordsResponse.Record;
import com.aliyuncs.alidns.model.v20150109.DescribeDomainsRequest;
import com.aliyuncs.alidns.model.v20150109.DescribeDomainsResponse;
import com.aliyuncs.alidns.model.v20150109.DescribeDomainsResponse.Domain;
import com.aliyuncs.alidns.model.v20150109.DescribeSubDomainRecordsRequest;
import com.aliyuncs.alidns.model.v20150109.DescribeSubDomainRecordsResponse;
import com.aliyuncs.alidns.model.v20150109.UpdateDomainRecordRequest;
import com.aliyuncs.alidns.model.v20150109.UpdateDomainRecordResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
 


public class Application {

    private static IAcsClient client = null;
    static {
        String regionId = "cn-shenzhen"; // 必填固定值,必须为“cn-hanghou”,城市
        String accessKeyId = ""; // your accessKey
        String accessKeySecret = "";// your accessSecretLTAIBWXjFQ06QNFt
        
        IClientProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
        client = new DefaultAcsClient(profile);
    }

    /**
     * 
     * 获取传入的域名的所有解析
     * 
     * @return
     */
    public static void DescribeDomainRecords(String records) {
        DescribeDomainRecordsRequest request = new DescribeDomainRecordsRequest();
        request.setDomainName(records);
        DescribeDomainRecordsResponse response;
        try {
            response = client.getAcsResponse(request);
            List<Record> domainRecords = response.getDomainRecords();
            domainRecords.forEach(e -> {
                System.out.println(JSON.toJSONString(e));
            });
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 
     * 获取传入二级域名的所有解析记录
     * 
     * @return
     */
    public static List<com.aliyuncs.alidns.model.v20150109.DescribeSubjectDomainRecordsResponse.Record>
        DescribeSubDomainRecords() {
        DescribeSubDomainRecordsRequest request = new DescribeSubDomainRecordsRequest();
        DescribeSubDomainRecordsResponse response;
        request.setSubDomain("api.baidu.com");
        try {
            response = client.getAcsResponse(request);
            List<com.aliyuncs.alidns.model.v20150109.DescribeSubDomainRecordsResponse.Record> domainRecords =
                response.getDomainRecords();
            domainRecords.forEach(e -> {
                System.out.println(JSON.toJSONString(e));
            });
            return domainRecords;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 
     * 获取所有域名解析记录
     * 
     * @return
     */
    public static void DescribeDomainsAll() {
        DescribeDomainsRequest request = new DescribeDomainsRequest();
        DescribeDomainsResponse response;
               try {
            response = client.getAcsResponse(request);
            List<Domain> list = response.getDomains();
            for (Domain domain : list) {
                System.out.println(domain.getDomainName());
            }
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }

    /**
     * 
     * 获取本机外网IP
     * 
     * @return
     */
    public static String getIp() {
        HttpResponse res = HttpClientConversation.getInstances().doGet("http://myip.dnsomatic.com/", null);
        String sendGet = res.getResponseBody();
        return sendGet;
    }

    /**
     * 
     * 更新指定解析记录(recordId)解析(IP,二级前缀)
     * 
     * @return
     */
    public static void UpdateRecord() {
        UpdateDomainRecordRequest request = new UpdateDomainRecordRequest();
        //指定解析记录
        request.setRecordId("188163121255641912471361");
        request.setRR("sop");
        request.setType("A");
        String ip = getIp();
        System.err.println("本机IP:" + ip);
        request.setValue(ip);
        UpdateDomainRecordResponse response;
        try {
            response = client.getAcsResponse(request);
            System.out.println(response.getRecordId());
            System.out.println(response.getRequestId());
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值