PHP 5 has reached end of support and will bedeprecatedon January 31, 2026. After deprecation, you won't be able to deploy PHP 5
applications, even if your organization previously used an organization policy to
re-enable deployments of legacy runtimes. Your existing PHP
5 applications will continue to run and receive traffic after theirdeprecation date. We recommend that
youmigrate to the latest supported version of PHP.
Outbound IP addresses for App Engine servicesStay organized with collectionsSave and categorize content based on your preferences.
Outbound services, such as the URL Fetch, Sockets, and Mail APIs, make use of
a large pool of IP addresses. The IP address ranges in this pool are subject to
routine changes. In fact, two sequential API calls from the same application may
appear to originate from two different IP addresses.
You can find the current IP address ranges for App Engine services by
using two json files that are published by Google:
Google publishes a list of Google-owned IP addresses ingoog.json.
Google also publishes a list of global and regional external IP addresses
ranges available for customers' Google Cloud resources incloud.json.
Taking away all ranges incloud.jsonfrom those ingoog.jsonresults in a
large set of IP addresses that are used by global Google APIs and other Google
services, including customer-facing products outside of Google Cloud.
These lists are updated frequently.
You can use the following Python script to create a list of IP address ranges
that include those used by Google APIs and services.
For information about running this script, seeHow to
run.
from__future__importprint_functionimportjsontry:fromurllibimporturlopenexceptImportError:fromurllib.requestimporturlopenfromurllib.errorimportHTTPErrorimportnetaddrIPRANGE_URLS={"goog":"https://www.gstatic.com/ipranges/goog.json","cloud":"https://www.gstatic.com/ipranges/cloud.json",}defread_url(url):try:returnjson.loads(urlopen(url).read())except(IOError,HTTPError):print("ERROR: Invalid HTTP response from%s"%url)exceptjson.decoder.JSONDecodeError:print("ERROR: Could not parse HTTP response from%s"%url)defget_data(link):data=read_url(link)ifdata:print("{}published:{}".format(link,data.get("creationTime")))cidrs=netaddr.IPSet()foreindata["prefixes"]:if"ipv4Prefix"ine:cidrs.add(e.get("ipv4Prefix"))if"ipv6Prefix"ine:cidrs.add(e.get("ipv6Prefix"))returncidrsdefmain():cidrs={group:get_data(link)forgroup,linkinIPRANGE_URLS.items()}iflen(cidrs)!=2:raiseValueError("ERROR: Could process data from Google")print("IP ranges for Google APIs and services default domains:")foripin(cidrs["goog"]-cidrs["cloud"]).iter_cidrs():print(ip)if__name__=="__main__":main()
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-12-19 UTC."],[],[]]