Подтвердить что ты не робот

Google App Engine - список IP-адресов?

Я знаю, что Google App Engine не поддерживает приложение, имеющее статический IP-адрес, но я хотел бы знать, есть ли список или диапазон IP-адресов, которые потенциально может иметь приложение? Я бы хотел использовать этот список как белый список IP-адресов для другого приложения, развернутого в другом месте.

4b9b3361

Ответ 1

В дополнение к другим ответам, поддержка GAE premier направила меня на это имя, esp в качестве исходного 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

Ответ 2

Использовать команду:

 dig -t txt _netblocks.google.com

чтобы получить последние блоки ip google, а затем вы можете добавить результат в свой белый список. Имейте в виду, что список не является статическим и время от времени обновляется.

Ответ 3

Из GAE documentationn вам нужно использовать команду dig, поскольку в настоящее время она не предоставляет способ отображать статические IP-адреса в приложении, из-за его дизайна:

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

Если команда dig недоступна в вашей системе, вы можете использовать онлайн-сервис:

Как время написания этого ответа, запрос 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"

Здесь отформатированный список консоли Google 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 могут измениться в будущем, поэтому вам потребуется время от времени запускать этот запрос.

Ответ 4

И это обновленный список от 20 марта 2016 года:

Извлечен с использованием инструкций в этой статье 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

Ответ 5

Я быстро собрал это вместе для использования с командой 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

Ответ 6

Я создал рубин script для этой цели (супер простой, легко обновляемый):

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