## Cloudflare/JD Cloud IP Details `client.IPs.List(ctx, query) (*IPListResponse, error)` **get** `/ips` Get IPs used on the Cloudflare/JD Cloud network, see https://www.cloudflare.com/ips for Cloudflare IPs or https://developers.cloudflare.com/china-network/reference/infrastructure/ for JD Cloud IPs. ### Parameters - `query IPListParams` - `Networks param.Field[string]` Specified as `jdcloud` to list IPs used by JD Cloud data centers. ### Returns - `type IPListResponse interface{…}` - `type IPListResponsePublicIPIPs struct{…}` - `Etag string` A digest of the IP data. Useful for determining if the data has changed. - `IPV4CIDRs []string` List of Cloudflare IPv4 CIDR addresses. - `IPV6CIDRs []string` List of Cloudflare IPv6 CIDR addresses. - `type IPListResponsePublicIPIPsJDCloud struct{…}` - `Etag string` A digest of the IP data. Useful for determining if the data has changed. - `IPV4CIDRs []string` List of Cloudflare IPv4 CIDR addresses. - `IPV6CIDRs []string` List of Cloudflare IPv6 CIDR addresses. - `JDCloudCIDRs []string` List IPv4 and IPv6 CIDRs, only populated if `?networks=jdcloud` is used. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ips" ) func main() { client := cloudflare.NewClient( ) ips, err := client.IPs.List(context.TODO(), ips.IPListParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", ips) } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "etag": "a8e453d9d129a3769407127936edfdb0", "ipv4_cidrs": [ "199.27.128.0/21" ], "ipv6_cidrs": [ "2400:cb00::/32" ] } } ```