Updated on 2026-09-28 GMT+08:00

Querying Name Servers

Function

This API is used to query name servers.

Calling Method

For details, see Calling APIs.

Authorization Information

Each account has all the permissions required to call all APIs, but IAM users must be assigned the required permissions.

  • If you are using role/policy-based authorization, see Permissions Policies and Supported Actions for details on the required permissions.
  • If you are using identity policy-based authorization, the following identity policy-based permissions are required.

    Action

    Access Level

    Resource Type (*: required)

    Condition Key

    Alias

    Dependencies

    dns:nameserver:list

    List

    -

    -

    dns:zone:get

    -

URI

GET /v2/nameservers

Table 1 Query Parameters

Parameter

Mandatory

Type

Description

type

No

String

Definition

Type of the name server. Exact matching will work. If this parameter is left blank, all types of name servers are queried.

Constraints

N/A

Range

  • public: queries the name servers of public zones.

  • private: queries the name servers of private zones.

Default Value

N/A

region

No

String

Definition

Region ID. To obtain the region ID, you can call the API for querying regions or see Regions and Endpoints. Exact matching will work.

Constraints

When you query name servers of public domain names, leave this parameter blank.

Range

N/A

Default Value

N/A

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

Definition

User token, which is used for identity authentication. It must be carried in the request header to verify the user identity during API calls.

You can obtain it by calling the IAM API for obtaining a user token. The value of X-Subject-Token in the response header is the user token.

For details about how to obtain a user token, see Obtaining a User Token.

Constraints

N/A

Range

N/A

Default Value

N/A

Response Parameters

Status code: 200

Table 3 Response body parameters

Parameter

Type

Description

nameservers

Array of NameServersResp objects

Definition

Name server list object. This field is an array. Each element contains information such as the priority and IP address of the DNS name server, which is used to resolve the DNS request for the domain name.

Table 4 NameServersResp

Parameter

Type

Description

type

String

Definition

Type of the name server. If this parameter is left blank, all types of name servers will be queried.

Range

  • public: queries name servers of public zones.

  • private: queries name servers of private zones.

region

String

Definition

Region ID. When you query name servers of public domain names, leave this parameter blank.

Range

N/A

ns_records

Array of ns_records objects

Definition

Name server list This field is an array. Each element contains a host record and a name server address. They are used for subdomain name resolution delegation.

Table 5 ns_records

Parameter

Type

Description

hostname

String

Definition

Host name. When you query name servers of private domain names, this parameter value is blank.

Range

N/A

address

String

Definition

The name server address. When you query name servers of public domain names, this parameter value is blank.

Range

N/A

priority

Integer

Definition

Priority. Example: If the priority of a name server is set to 1, it is used to resolve domain names in the first priority.

Range

N/A

Example Requests

None

Example Responses

Status code: 200

{
  "nameservers" : [ {
    "region" : null,
    "type" : "public",
    "ns_records" : [ {
      "hostname" : "ns1.huawei.com.",
      "priority" : 1
    }, {
      "hostname" : "ns2.huawei.com.",
      "priority" : 2
    } ]
  }, {
    "region" : "xxx",
    "type" : "private",
    "ns_records" : [ {
      "priority" : 1,
      "address" : "100.125.1.0"
    }, {
      "priority" : 2,
      "address" : "100.125.1.1"
    } ]
  } ]
}

SDK Sample Code

The SDK sample code is as follows.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.dns.v2.region.DnsRegion;
import com.huaweicloud.sdk.dns.v2.*;
import com.huaweicloud.sdk.dns.v2.model.*;


public class ListNameServersSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");

        ICredential auth = new BasicCredentials()
                .withAk(ak)
                .withSk(sk);

        DnsClient client = DnsClient.newBuilder()
                .withCredential(auth)
                .withRegion(DnsRegion.valueOf("<YOUR REGION>"))
                .build();
        ListNameServersRequest request = new ListNameServersRequest();
        try {
            ListNameServersResponse response = client.listNameServers(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkdns.v2.region.dns_region import DnsRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkdns.v2 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]

    credentials = BasicCredentials(ak, sk)

    client = DnsClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(DnsRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ListNameServersRequest()
        response = client.list_name_servers(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    dns "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dns/v2"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dns/v2/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/dns/v2/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")

    auth, err := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        SafeBuild()

    if err != nil {
        fmt.Println(err)
        return
    }

    hcClient, err := dns.DnsClientBuilder().
         WithRegion(region.ValueOf("<YOUR REGION>")).
         WithCredential(auth).
         SafeBuild()


    if err != nil {
        fmt.Println(err)
        return
    }

    client := dns.NewDnsClient(hcClient)

    request := &model.ListNameServersRequest{}
	response, err := client.ListNameServers(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.

Status Codes

Status Code

Description

200

Response to the request for querying the name server list

Error Codes

See Error Codes.