2012-06-22 37 views
21

Sé que Google App Engine no admite una aplicación que tenga una dirección IP estática, pero me gustaría saber si existe una lista o rango de direcciones IP que una aplicación podría tener. Me gustaría utilizar esa lista como una lista blanca de direcciones IP para otra aplicación desplegada en otro lugar.Google App Engine: lista de direcciones IP

+0

no sé mucho al respecto, pero esto es probablemente para lo que es el "Conector seguro de datos": https://developers.google.com/secure-data-connector/ – Thilo

+0

Necesitará utilizar algún otro mecanismo. –

+5

¿Por qué confía en la dirección IP remota? Si agrega una lista blanca a su aplicación, se incluirán en la lista blanca _todas las aplicaciones de App Engine. Use autenticación. –

Respuesta

14

Además de las otras respuestas, el apoyo de primera GAE me dirigió a este nombre, especialmente como la dirección IP de origen de URLFetch llamadas:

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

que responde:

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

si a continuación, consultar los, se obtiene esta lista de rangos (a partir del 06/26/2014):

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

Ver también: http://stackoverflow.com/a/16965139/768176 – ckhan

6

Uso de comandos:

dig -t txt _netblocks.google.com 

para obtener los últimos bloques de IP de Google, y luego se puede añadir el resultado a su lista blanca. Tenga en cuenta que la lista no es estática y se actualiza de vez en cuando.

+0

Esto solo se aplica a los servidores de correo de Google. Otros servicios (como Maps, etc.) tienen direcciones IP diferentes de las que se enumeran en ese netblock IP4. – Josiah

+1

A partir del 29.04.2013, también hay solicitudes del siguiente rango: 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

Desde el GAE documentationn, es necesario utilizar el comando excavación, ya que actualmente no proporciona una manera de asignar direcciones IP estáticas a una aplicación, debido a su diseño:

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

Si el excavación comando no está disponible en su sistema, puede utilizar un servicio en línea:

Como el momento de escribir esta respuesta, consultar http://www.digwebinterface.com/?hostnames=_netblocks.google.com&type=TXT&useresolver=8.8.4.4&ns=self&nameservers=ns1.google.com rendimientos:

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

Aquí la lista con formato para la consola de API de Google si lo necesita:

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 

Tenga en cuenta los rangos de IP pueden cambiar en el futuro por lo que necesitará para ejecutar esta consulta de vez en cuando.

+1

Aquí hay una línea para ayudarlo a analizar: '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

Y esta es una lista actualizada al 20 de marzo de 2016:

Extraído usando las instrucciones 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

Tiré esto rápidamente, para usar con el comando 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

que he creado un script de rubí para este propósito exacto (super simple, fácil de actualizar):

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