Moteur D'application Google - liste des adresses IP?

Je sais que Google App Engine ne supporte pas une application ayant une adresse IP statique, mais je voudrais savoir s'il existe une liste ou une gamme d'adresses IP qu'une application pourrait potentiellement avoir? J'aimerais utiliser cette liste comme liste blanche d'adresses IP pour une autre application déployée ailleurs.

22
demandé sur ThePiachu 2012-06-22 06:28:49

6 réponses

en plus des autres réponses, GAE premier support m'a dirigé vers ce nom, esp comme adresse IP source pour URLFetch appels:

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

qui répond:

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

si vous les interrogez, vous obtenez cette liste de gammes (à partir de 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
14
répondu ckhan 2014-06-26 13:45:19

Utiliser la commande:

 dig -t txt _netblocks.google.com

pour obtenir les dernières versions de google de blocs d'ip, et ensuite vous pouvez ajouter le résultat dans votre liste blanche. Soyez conscient que la liste n'est pas statique et mise à jour de temps en temps.

7
répondu Yudong Li 2012-06-22 06:27:41

GAE documentationn, vous devez utiliser le dig commande parce qu'elle ne fournit pas actuellement un moyen de mapper des adresses IP statiques à une application, en raison de sa conception:

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

Si le dig commande n'est pas disponible sur votre système, vous pouvez utiliser un service en ligne:

comme le moment de la rédaction de cette réponse, interrogation http://www.digwebinterface.com/?hostnames=_netblocks.google.com&type=TXT&useresolver=8.8.4.4&ns=self&nameservers=ns1.google.com retourne:

_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"

Voici la liste formatée pour la console de L'API Google si vous en avez besoin:

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

veuillez noter que les plages IP peuvent changer dans le futur, vous devrez donc lancer cette requête de temps en temps.

5
répondu Tony Baguette 2013-04-24 09:05:11

extrait selon les instructions dans cet article de KB.

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
3
répondu Waleed Abdulla 2016-03-20 07:32:30

Je l'ai fait rapidement, pour l'utiliser avec le gcloud create-firewall la commande.

#!/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
2
répondu pestilence669 2017-06-16 03:30:17

j'ai créé un script ruby dans ce but précis (super simple, facile à mettre à jour):

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
0
répondu StephenG 2017-07-19 06:00:53