2012-06-22 65 views
21

我知道Google App Engine不支持具有靜態IP地址的應用程序,但我想知道應用程序可能具有的IP地址列表或範圍是否有限?我希望將該列表用作其他地方部署的其他應用程序的IP地址白名單。Google App Engine - IP地址列表?

+0

我不很瞭解,但是這是可能是「安全數據連接器」的用途:https://developers.google.com/secure-data-connector/ – Thilo

+0

您將需要使用其他一些機制。 –

+5

你爲什麼依賴遠程IP地址?將您的應用列入白名單將清空_all_ App Engine應用。使用驗證。 –

回答

14

除了其他的答案,GAE總理支持針對我這個名字,尤指源IP地址爲URLFetch呼叫:其中回答

$ dig -t txt _cloud-netblocks.googleusercontent.com 

include:_cloud-netblocks1.googleusercontent.com 
include:_cloud-netblocks2.googleusercontent.com 
include:_cloud-netblocks3.googleusercontent.com 

如果再查詢那些,你會得到這個範圍列表(截至2014-06-26):

8.34.208.0/20 
8.35.192.0/21 
8.35.200.0/23 
23.236.48.0/20 
23.251.128.0/19 
107.167.160.0/19 
107.178.192.0/18 
108.170.192.0/20 
108.170.208.0/21 
108.170.216.0/22 
108.170.220.0/23 
108.170.222.0/24 
108.59.80.0/20 
130.211.4.0/22 
146.148.16.0/20 
146.148.2.0/23 
146.148.32.0/19 
146.148.4.0/22 
146.148.64.0/18 
146.148.8.0/21 
162.216.148.0/22 
162.222.176.0/21 
173.255.112.0/20 
192.158.28.0/22 
199.192.112.0/22 
199.223.232.0/22 
199.223.236.0/23 
+0

另請參閱:http://stackoverflow.com/a/16965139/768176 – ckhan

6

使用命令:

dig -t txt _netblocks.google.com 

得到谷歌最新的IP塊,然後你可以將結果添加到您的白名單。 請注意,列表不是靜態的,並會不時更新。

+0

這隻適用於Google的郵件服務器。其他服務(如地圖等)的IP地址與該IP4網絡塊中列出的IP地址不同。 – Josiah

+1

截至2013年4月29日,還有來自以下範圍的請求: Level 3 Communications,Inc. LVLT-ORG-8-8(NET-8-0-0-0-1)8.0.0.0 - 8.255。 255.255 Google Apps。 LVLT-GOOGL-2-8-35-200(NET-8-35-200-0-1)8.35.200.0 - 8.35.207.255 – snae

4

GAE documentationn,你需要使用命令,因爲它目前不提供一種方式來靜態IP地址,映射到一個應用程序,因爲它的設計:

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

如果命令不可用您的系統上,您可以使用網上服務:

到寫這個答案的時候,查詢http://www.digwebinterface.com/?hostnames=_netblocks.google.com&type=TXT&useresolver=8.8.4.4&ns=self&nameservers=ns1.google.com 回報:

_netblocks.google.com. 3596 IN TXT "v=spf1 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 ?all" 

這裏的谷歌API控制檯中的格式列表中,如果你需要它:

216.239.32.0/19 
64.233.160.0/19 
66.249.80.0/20 
72.14.192.0/18 
209.85.128.0/17 
66.102.0.0/20 
74.125.0.0/16 
64.18.0.0/20 
207.126.144.0/20 
173.194.0.0/16 

請注意,IP範圍可能在未來改變,所以你需要從時間運行此查詢時間。

+1

下面是一個幫助你解析它的方法:'dig -t TXT _netblocks。 google.com @ ns1.google.com | grep'^ _netblocks.google.com'| grep -o'ip4:。*'| sed -e's/ip4:// g'-e's// \ n/g'' – jschnurr

3

這是截至2016年3月20日的更新列表:

使用說明提取in this KB article

ip4:8.34.208.0/20 
ip4:8.35.192.0/21 
ip4:8.35.200.0/23 
ip4:108.59.80.0/20 
ip4:108.170.192.0/20 
ip4:108.170.208.0/21 
ip4:108.170.216.0/22 
ip4:108.170.220.0/23 
ip4:108.170.222.0/24 

ip4:162.216.148.0/22 
ip4:162.222.176.0/21 
ip4:173.255.112.0/20 
ip4:192.158.28.0/22 
ip4:199.192.112.0/22 
ip4:199.223.232.0/22 
ip4:199.223.236.0/23 
ip4:23.236.48.0/20 
ip4:23.251.128.0/19 

ip4:107.167.160.0/19 
ip4:107.178.192.0/18 
ip4:146.148.2.0/23 
ip4:146.148.4.0/22 
ip4:146.148.8.0/21 
ip4:146.148.16.0/20 
ip4:146.148.32.0/19 
ip4:146.148.64.0/18 
ip4:130.211.4.0/22 

ip4:130.211.8.0/21 
ip4:130.211.16.0/20 
ip4:130.211.32.0/19 
ip4:130.211.64.0/18 
ip4:130.211.128.0/17 
ip4:104.154.0.0/15 
ip4:104.196.0.0/14 
ip4:208.68.108.0/23 

ip6:2600:1900::/35 
0

我很快把它們放在一起,用於gcloud create-firewall命令。

#!/bin/bash 

netblocks=$(dig TXT _cloud-netblocks.googleusercontent.com @ns1.google.com +short | sed -e 's/"//g') 

for block in $netblocks; do 
    if [[ $block == include:* ]]; then 
     ipblocks=$(dig TXT ${block#include:} @ns1.google.com +short) 

     for ipblock in $ipblocks; do 
      if [[ $ipblock == ip4:* ]]; then 
       printf "${ipblock:4}," 
      fi 
     done 
    fi 
done 
0

我創建了一個Ruby腳本這一確切目的(超級簡單,易於更新):

https://github.com/stephengroat/whitelist-travisci

Resolv::DNS.open do |dns| 
    ress = dns.getresource "_cloud-netblocks.googleusercontent.com", Resolv::DNS::Resource::IN::TXT 
    ress.data.scan(/(?<=include:)_cloud-netblocks+\d.googleusercontent.com/).each do |r| 
    subress = dns.getresource r, Resolv::DNS::Resource::IN::TXT 
    subress.data.scan(/(?<=ip[4|6]:)[^\s]+/).each do |sr| 
     puts sr 
    end 
    end 
end