我知道Google App Engine不支持具有靜態IP地址的應用程序,但我想知道應用程序可能具有的IP地址列表或範圍是否有限?我希望將該列表用作其他地方部署的其他應用程序的IP地址白名單。Google App Engine - IP地址列表?
回答
除了其他的答案,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
另請參閱:http://stackoverflow.com/a/16965139/768176 – ckhan
使用命令:
dig -t txt _netblocks.google.com
得到谷歌最新的IP塊,然後你可以將結果添加到您的白名單。 請注意,列表不是靜態的,並會不時更新。
從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範圍可能在未來改變,所以你需要從時間運行此查詢時間。
下面是一個幫助你解析它的方法:'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
這是截至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
我很快把它們放在一起,用於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
我創建了一個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
- 1. Google App Engine服務器IP地址
- 2. 在Google App Engine + Python中獲取IP地址
- 3. 在GWT和Google App Engine中獲取客戶端IP地址
- 4. 根據Google App Engine上的IP地址進行分流
- 5. Google App Engine靜態IP
- 6. Google App Engine TCP/IP連接
- 7. Google App Engine - urlFetch地址不在_netblocks.google.com
- 8. Google App Engine和dos.xml
- 9. Google App Engine地理查詢
- 10. Google App Engine SSL和唯一IP
- 11. 使用中的IP地址與Google App Engine一起使用靈活的環境
- 12. Google App Engine中的分片列表
- 13. Google App Engine非索引列表屬性?
- 14. Google App Engine中的有序列表 - JPA
- 15. Google App Engine:保存對象列表?
- 16. Google App Engine存儲爲列表vs JSON
- 17. Google App Engine,任務隊列
- 18. Google App Engine Python WebApp序列
- 19. Google App Engine任務隊列
- 20. App Engine + Google Documents
- 21. Google App Engine ThreadSafe
- 22. Google App Engine Geohashing
- 23. Google App Engine - JDODetachedFieldAccessException
- 24. Google App Engine Python HTML表
- 25. Google App Engine聯繫表
- 26. 多個網址提取Google App Engine python
- 27. Google App Engine中的友好網址
- 28. Google App Engine Cron PHP
- 29. Google App Engine HTTP
- 30. Google App Engine - java.security.AccessControlException?
我不很瞭解,但是這是可能是「安全數據連接器」的用途:https://developers.google.com/secure-data-connector/ – Thilo
您將需要使用其他一些機制。 –
你爲什麼依賴遠程IP地址?將您的應用列入白名單將清空_all_ App Engine應用。使用驗證。 –