List uptime-check server IP addresses

This document shows you how to get a list of IP addresses used by uptime-check servers, and how you can identify traffic from the uptime-check servers in your logs.

List IP addresses

When you're checking a service that is behind a firewall, you can configure your service's firewall to accept traffic from the current set of IP addresses used for uptime checking. To get these IP addresses, use the following instructions:

Console

  1. In the Google Cloud console, go to the Uptime checks page:

    Go to Uptime checks

    If you use the search bar to find this page, then select the result whose subheading is Monitoring.

  2. In the toolbar of the Google Cloud console, select your Google Cloud project. For App Hub configurations, select the App Hub host project or management project.
  3. In the Uptime checks menu, click Download. A file uptime-source-ips.txt is downloaded and contains the IP addresses.

gcloud

Run the gcloud monitoring uptime list-ips command:

gcloudmonitoringuptimelist-ips

The method returns the following information for each IP address:

  • The IP address, not a range, in IPv4 or IPv6 format.
  • The region: USA, EUROPE, SOUTH_AMERICA, or ASIA_PACIFIC.
  • The location within the region.

API

Call the uptimeCheckIps.list method of the Monitoring API.

The method returns the following information for each IP address:

  • The region: USA, EUROPE, SOUTH_AMERICA, or ASIA_PACIFIC.
  • A more specific location within the region.
  • The IP address, not a range, in IPv4 or IPv6 format.

C#

To authenticate to Monitoring, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

publicstaticobjectListUptimeCheckIps()
{
varclient=UptimeCheckServiceClient.Create();
varips=client.ListUptimeCheckIps(newListUptimeCheckIpsRequest());
foreach(UptimeCheckIpipinips)
{
Console.WriteLine("{0,20} {1}",ip.IpAddress,ip.Location);
}
return0;
}

Java

To authenticate to Monitoring, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

privatestaticvoidlistUptimeCheckIps()throwsIOException{
try(UptimeCheckServiceClientclient=UptimeCheckServiceClient.create()){
ListUptimeCheckIpsPagedResponseresponse=
client.listUptimeCheckIps(ListUptimeCheckIpsRequest.newBuilder().build());
for(UptimeCheckIpconfig:response.iterateAll()){
System.out.println(config.getRegion()+" - "+config.getIpAddress());
}
}catch(Exceptione){
usage("Exception listing uptime IPs: "+e.toString());
throwe;
}
}

Go

To authenticate to Monitoring, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.


// listIPs is an example of listing uptime check IPs.
funclistIPs(wio.Writer)error{
ctx:=context.Background()
client,err:=monitoring.NewUptimeCheckClient(ctx)
iferr!=nil{
returnfmt.Errorf("NewUptimeCheckClient: %w",err)
}
deferclient.Close()
req:=&monitoringpb.ListUptimeCheckIpsRequest{}
it:=client.ListUptimeCheckIps(ctx,req)
for{
config,err:=it.Next()
iferr==iterator.Done{
break
}
iferr!=nil{
returnfmt.Errorf("ListUptimeCheckIps: %w",err)
}
fmt.Fprintln(w,config)
}
fmt.Fprintln(w,"Done listing uptime check IPs")
returnnil
}

Node.js

To authenticate to Monitoring, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

// Imports the Google Cloud client library
constmonitoring=require('@google-cloud/monitoring');
// Creates a client
constclient=newmonitoring.UptimeCheckServiceClient ();
// List uptime check IPs
const[uptimeCheckIps]=awaitclient.listUptimeCheckIps();
uptimeCheckIps.forEach(uptimeCheckIp=>{
console.log(
uptimeCheckIp.region,
uptimeCheckIp.location,
uptimeCheckIp.ipAddress
);
});

PHP

To authenticate to Monitoring, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

use Google\Cloud\Monitoring\V3\Client\UptimeCheckServiceClient;
use Google\Cloud\Monitoring\V3\ListUptimeCheckIpsRequest;
/**
 * Example:
 * ```
 * list_uptime_check_ips($projectId);
 * ```
 */
function list_uptime_check_ips(string $projectId): void
{
 $uptimeCheckClient = new UptimeCheckServiceClient([
 'projectId' => $projectId,
 ]);
 $listUptimeCheckIpsRequest = new ListUptimeCheckIpsRequest();
 $pages = $uptimeCheckClient->listUptimeCheckIps($listUptimeCheckIpsRequest);
 foreach ($pages->iteratePages() as $page) {
 $ips = $page->getResponseObject()->getUptimeCheckIps();
 foreach ($ips as $ip) {
 printf(
 'ip address: %s, region: %s, location: %s' . PHP_EOL,
 $ip->getIpAddress(),
 $ip->getRegion(),
 $ip->getLocation()
 );
 }
 }
}

Python

To authenticate to Monitoring, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

deflist_uptime_check_ips() -> pagers.ListUptimeCheckIpsPager:
"""Gets all locations and IP addresses used by uptime check servers
 Returns:
 A list of locations and IP addresses of uptime check servers.
 Iterating over this object will yield results and resolve additional pages automatically.
 """
 client = monitoring_v3.UptimeCheckServiceClient()
 ips = client.list_uptime_check_ips(request={})
 print(
 tabulate.tabulate(
 [(ip.region, ip.location, ip.ip_address) for ip in ips],
 ("region", "location", "ip_address"),
 )
 )
 return ips

Ruby

To authenticate to Monitoring, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

gem"google-cloud-monitoring"
require"google/cloud/monitoring"
deflist_ips
client=Google::Cloud::Monitoring .uptime_check_service
# Iterate over all results.
client.list_uptime_check_ips({}).eachdo|element|
puts"#{element.location}#{element.ip_address }"
end
end

Uptime checks can come from any of the IP addresses, but only one address from each geographic location is used for each time interval. The geographic locations are listed in the uptime checks dashboard, as shown in the previous section. You can also use free, web-based services to identify the registered locations of the IP addresses you downloaded.

Identify uptime-check traffic in logs

You can identify requests from the uptime-check servers by the following information in your service's request logs:

  • ip: The ip field contains one of the addresses used by the uptime-check servers. For information about how to list all IP addresses, see List IP addresses.
  • User-Agent: The User-Agent header value is always the following:

    GoogleStackdriverMonitoring-UptimeChecks(https://cloud.google.com/monitoring)
    

    Specifying a User-Agent custom header results in a form validation error and prevents the check configuration from being saved.

What's next

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025年11月07日 UTC.