2011-04-08 116 views
16

我正在与第三方webservice合作,他们要求所有对其服务的调用都来自列入白名单的IP地址。也就是说,我必须给他们IP地址,我将从中拨打他们的服务电话。Appengine服务器的IP地址块?

问题是我正在使用Google Appengine。从Appengine发出传出http请求时,有没有办法获得静态IP地址?如果失败 - 是否有一个IP地址的所有请求将来自?我可以将整个集团列入白名单。如果存在,它有多大可能改变?

我知道我可以设置一个简单的Amazon EC2实例作为代理使用(会问另一个问题,具体如何做到这一点),但只是想确保没有其他方式。

+0

任何人谁是感兴趣的是得到这个固定的应请动态演示此问题:https://code.google.com/p/googleappengine/issues/detail?id=6644 – speedplane 2014-02-21 19:05:39

回答

16

几周前,我通过从Google App Engine通过Urlfetch连接到Stack Exchange API(该团队已及时解决了将所有GAE IP列入白名单的问题)。

的IP地址范围,造成UrlFetch连接可能来自,可以通过执行下面的DNS查询发现:

dig -t TXT _netblocks.google.com @ns1.google.com 
+0

你知道IP地址列表有多稳定吗?即它多久改变一次? – aloo 2011-04-08 13:30:58

+1

@aloo不,我不相信这是不可预测的。 – systempuntoout 2011-04-08 13:32:19

+0

我刚刚运行了这个命令,得到了一个IP地址列表。但是现在我看到AppEngine连接来自其他未在此处列出的IP地址。你确定这是完整的吗?此外,这似乎只是传入的IP地址,而不是由urlfetch制作的传出IP地址。 – speedplane 2016-03-07 22:41:19

1

最后我检查了这是不可能的。您可以动态获取当前的IP地址,但这是不可预测的。

+1

动态:如何? – Eliot 2012-07-11 13:07:47

+0

你怎么能动态地获得ips? – 2017-01-18 21:22:52

+0

对不起 - 自从我使用AppEngine以来,这已经太多年了,我不记得我是如何实现这一目标的。 – 2017-03-23 17:23:26

0

请注意:_netblocks.google.com显然是不准确的。目前我已经注意到,当你挖掘_netblocks时,GAE从未列出的地址连接,例如从8.35.201.166开始。

此范围未在_netblocks,_netblocks2或_netblocks3中列出。

挖电流输出: IP4:216.239.32.0/19 IP4:64.233.160.0/19 IP4:66.249.80.0/20 IP4:72.14.192.0/18 IP4:209.85.128.0/17 IP4 :66.102.0.0/20 IP4:74.125.0.0/16 IP4:64.18.0.0/20 IP4:207.126.144.0/20 IP4:173.194.0.0/16

+0

我认为这已过时。 – speedplane 2016-03-07 22:38:23