更新时间:2024-10-15 GMT+08:00
分享

查询浮动IP列表

功能介绍

查询提交请求的租户有权限操作的所有浮动IP地址。单次查询最多返回2000条数据,超过2000后会返回分页标记。

接口约束

单次查询最多返回2000条数据,超过2000后会返回分页标记。

调用方法

请参见如何调用API

URI

GET /v2.0/floatingips

表1 Query参数

参数

是否必选

参数类型

描述

limit

Integer

  • 功能说明:分页查询每页返回的记录个数

  • 取值范围为0~intmax。

  • 约束:limit需要和marker配合使用,详细规则请见marker的参数说明

最小值:0

最大值:2000

marker

String

  • 功能说明:分页查询的起始资源ID,表示从指定资源的下一条记录开始查询。

  • 约束:marker需要和limit配合使用:

    • 如果不传入marker和limit参数,查询结果返回全部资源记录。

    • 如果不传入marker参数,limit为10,查询结果返回第1~10条资源记录。

    • 如果marker为第10条记录的资源ID,limit为10,查询结果返回第11~20条资源记录。

    • 如果marker为第10条记录的资源ID,不传入limit参数,查询结果返回第11条及之后的所有资源记录。

最小长度:0

最大长度:36

page_reverse

Boolean

  • 功能说明:False/True,是否设置分页的顺序。

id

String

  • 功能说明:浮动IP的id。

最小长度:0

最大长度:36

floating_ip_address

String

  • 功能说明:浮动IP地址(IPv4格式)。

最小长度:0

最大长度:64

router_id

String

  • 功能说明:所属路由器id。

最小长度:0

最大长度:36

port_id

String

  • 功能说明:端口id。

最小长度:0

最大长度:36

fixed_ip_address

String

  • 功能说明:关联端口的私有IP地址。

最小长度:0

最大长度:64

tenant_id

String

  • 功能说明:项目ID。

最小长度:0

最大长度:36

floating_network_id

String

  • 功能说明:外部网络的id。

  • 约束:只能使用固定的外网,外部网络的信息请通过GET /v2.0/networks?router:external=True或GET /v2.0/networks?name={floating_network}或neutron net-external-list方式查询

最小长度:0

最大长度:36

请求参数

响应参数

状态码: 200

表2 响应Body参数

参数

参数类型

描述

floatingips

Array of FloatingIpResp objects

floatingip对象列表

数组长度:0 - 99999

floatingips_links

Array of Pager objects

floatingips_link对象列表

数组长度:0 - 99999

表3 FloatingIpResp

参数

参数类型

描述

fixed_ip_address

String

  • 功能说明:关联端口的私有IP地址。

最小长度:0

最大长度:64

floating_ip_address

String

  • 功能说明:浮动IP地址。

最小长度:0

最大长度:64

floating_network_id

String

  • 功能说明:外部网络id

最小长度:0

最大长度:36

id

String

  • 功能说明:浮动IP地址的id。

最小长度:0

最大长度:36

port_id

String

  • 功能说明:端口id

最小长度:0

最大长度:36

router_id

String

  • 功能说明:所属路由器id。

最小长度:0

最大长度:36

status

String

  • 功能说明:网络状态,可以为ACTIVE, DOWN或ERROR。

  • 取值范围:

    • DOWN:未绑定

    • ACTIVE:绑定

    • ERROR:异常

枚举值:

  • ACTIVE

  • DOWN

  • ERROR

tenant_id

String

  • 功能说明:项目id。

最小长度:0

最大长度:36

project_id

String

  • 功能说明:项目id。

最小长度:0

最大长度:36

dns_name

String

  • 功能说明:DNS名称,该参数当前仅在“华南-广州”开放

最小长度:0

最大长度:255

dns_domain

String

  • 功能说明:DNS域地址,该参数当前仅在“华南-广州”开放

最小长度:0

最大长度:255

created_at

String

  • 功能说明:资源创建时间,采用UTC时间,格式:YYYY-MM-DDTHH:MM:SS

updated_at

String

  • 功能说明:资源更新时间,采用UTC时间,格式:YYYY-MM-DDTHH:MM:SS

表4 Pager

参数

参数类型

描述

href

String

页码url

最小长度:0

最大长度:256

rel

String

next:下一页 previous:前一页

枚举值:

  • next

  • previous

请求示例

  • GET https://{Endpoint}/v2.0/floatingips?limit=1
  • GET https://{Endpoint}/v2.0/floatingips?id={fip_id}&router_id={router_id}&floating_network_id={net_id}&floating_ip_address={floating_ip}&port_id={port_id}&fixed_ip_address={fixed_ip}&project_id={project_id}

响应示例

状态码: 200

GET操作正常返回

{
  "floatingips" : [ {
    "id" : "1a3a2818-d9b4-4a9c-8a19-5252c499d1cd",
    "status" : "DOWN",
    "router_id" : null,
    "tenant_id" : "bbfe8c41dd034a07bebd592bf03b4b0c",
    "project_id" : "bbfe8c41dd034a07bebd592bf03b4b0c",
    "floating_network_id" : "0a2228f2-7f8a-45f1-8e09-9039e1d09975",
    "fixed_ip_address" : null,
    "floating_ip_address" : "99.99.99.84",
    "port_id" : null,
    "dns_name" : "ecs-88-99-103-61",
    "dns_domain" : "compute.myclouds-dns.com.",
    "created_at" : "2017-10-19T12:21:28",
    "updated_at" : "2018-07-30T12:52:13"
  } ],
  "floatingips_links" : [ {
    "href" : "https://network.region.cn-southwest-2.myclouds.com/v2.0/floatingips.json?limit=2000&marker=000a6144-5010-46f2-bf06-6a1c94477ea3&page_reverse=true",
    "rel" : "previous"
  }, {
    "href" : "https://network.region.cn-southwest-2.myclouds.com/v2.0/floatingips.json?limit=2000&marker=d445e537-bc81-4039-9c7b-f9c1f5c73c78",
    "rel" : "next"
  } ]
}

SDK代码示例

SDK代码示例如下。

 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
48
49
50
51
52
53
54
55
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.eip.v2.region.EipRegion;
import com.huaweicloud.sdk.eip.v2.*;
import com.huaweicloud.sdk.eip.v2.model.*;


public class NeutronListFloatingIpsSolution {

    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);

        EipClient client = EipClient.newBuilder()
                .withCredential(auth)
                .withRegion(EipRegion.valueOf("<YOUR REGION>"))
                .build();
        NeutronListFloatingIpsRequest request = new NeutronListFloatingIpsRequest();
        request.withLimit(<limit>);
        request.withMarker("<marker>");
        request.withPageReverse(<page_reverse>);
        request.withId("<id>");
        request.withFloatingIpAddress("<floating_ip_address>");
        request.withRouterId("<router_id>");
        request.withPortId("<port_id>");
        request.withFixedIpAddress("<fixed_ip_address>");
        request.withTenantId("<tenant_id>");
        request.withFloatingNetworkId("<floating_network_id>");
        try {
            NeutronListFloatingIpsResponse response = client.neutronListFloatingIps(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
31
32
33
34
35
36
37
38
39
40
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkeip.v2.region.eip_region import EipRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkeip.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 = EipClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(EipRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = NeutronListFloatingIpsRequest()
        request.limit = <limit>
        request.marker = "<marker>"
        request.page_reverse = <PageReverse>
        request.id = "<id>"
        request.floating_ip_address = "<floating_ip_address>"
        request.router_id = "<router_id>"
        request.port_id = "<port_id>"
        request.fixed_ip_address = "<fixed_ip_address>"
        request.tenant_id = "<tenant_id>"
        request.floating_network_id = "<floating_network_id>"
        response = client.neutron_list_floating_ips(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
48
49
50
51
52
53
54
55
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    eip "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/eip/v2"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/eip/v2/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/eip/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 := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()

    client := eip.NewEipClient(
        eip.EipClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.NeutronListFloatingIpsRequest{}
	limitRequest:= int32(<limit>)
	request.Limit = &limitRequest
	markerRequest:= "<marker>"
	request.Marker = &markerRequest
	pageReverseRequest:= <page_reverse>
	request.PageReverse = &pageReverseRequest
	idRequest:= "<id>"
	request.Id = &idRequest
	floatingIpAddressRequest:= "<floating_ip_address>"
	request.FloatingIpAddress = &floatingIpAddressRequest
	routerIdRequest:= "<router_id>"
	request.RouterId = &routerIdRequest
	portIdRequest:= "<port_id>"
	request.PortId = &portIdRequest
	fixedIpAddressRequest:= "<fixed_ip_address>"
	request.FixedIpAddress = &fixedIpAddressRequest
	tenantIdRequest:= "<tenant_id>"
	request.TenantId = &tenantIdRequest
	floatingNetworkIdRequest:= "<floating_network_id>"
	request.FloatingNetworkId = &floatingNetworkIdRequest
	response, err := client.NeutronListFloatingIps(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

GET操作正常返回

错误码

请参见错误码

相关文档