我已经在Google App engine中部署了一个应用程序。
我可以得到部署此应用程序的机器的IP地址,但我的问题是,此应用程序是否总是在相同的IP上运行,或者是否有可能在不同的IP上运行。
因为google app engine是一个云解决方案,所以它可以在多个地方同时运行多个实例。
谢谢
发布于 2015-12-16 16:17:53
GAE使用不同的IP。如果你想了解更多信息,我找到了这个链接:
发布于 2021-06-15 01:49:47
(2021年6月):以前/现有的答案不再反映当今的当前实践(事实上,该文档页面已被删除)。作为一项云服务,IP块是短暂的和轮换的。
与@speedplane发布的脚本相似的是this page上的脚本,因此您可以看到来自App Engine的流量的可能地址块(出站IP地址)。但是,如果您的目的是使用具有静态IP地址的App Engine,则根据它是入站地址还是出站地址,您有两种不同的选择。
目前(2020年)对入站静态IP用户的建议是创建一个具有静态IP的负载均衡器,该负载均衡器重定向到您的App Engine (和其他)应用程序。有关更多信息,请参阅以下资源:
对于出站静态IP地址,您需要创建一个私有网络,并关联一个静态IP,然后将您的所有App Engine流量通过私有网络路由并通过云NAT网关和您指定的静态IP地址传出到互联网。有关更多信息,请参阅以下资源:
App Engine docs
中的
发布于 2020-10-08 04:30:21
谷歌does have documentation on how to do this,但有相当多的命令,你需要运行只是为了获得最新的IP地址范围。我编写了一个小的python脚本来执行这些操作并获取最新的IP地址范围,而不是每次都这样做。
要运行下面的代码,只需调用print(list(get_all_ip_cidrs()))
import re
import logging
import subprocess
def get_netblock_ips_cidr(netblock_id):
'''Run the nslookup comamnd on the given netlock, and yield all of the ip
address cidr addresses'''
netblock = "_cloud-netblocks%d.googleusercontent.com"%netblock_id
logging.info("Running Netblock %s", netblock)
CMD = 'nslookup -q=TXT %s 8.8.8.8'%netblock
p = subprocess.Popen(CMD, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
out, err = p.communicate()
re_ips = re.compile(r"ip4:(?P<ipcidr>[\.\d]+/\d+)")
num = 0
for m in re_ips.finditer(out):
yield m.group('ipcidr')
num += 1
logging.info("Netblock %s: Found %d IPs", netblock, num)
def get_all_ip_cidrs(max_net_block_ranges = 10):
'''Run it across '''
netblock_id = 0
for netblock_id in range(1, max_net_block_ranges):
for cidr in get_netblock_ips_cidr(netblock_id):
yield cidr
logging.info("Finished after %d netblocks"%netblock_id)
https://stackoverflow.com/questions/34310810
复制相似问题