2012-06-22 34 views
21

Tôi biết rằng Google App Engine không hỗ trợ ứng dụng có địa chỉ IP tĩnh, nhưng tôi muốn biết liệu có danh sách hoặc dải địa chỉ IP mà một ứng dụng có khả năng có thể có không? Tôi muốn sử dụng danh sách đó làm danh sách trắng các địa chỉ IP cho một ứng dụng khác được triển khai ở nơi khác.Google App Engine - danh sách địa chỉ IP?

+0

Tôi không biết nhiều về nó, nhưng đây là có lẽ là "Trình kết nối dữ liệu bảo mật" dành cho: https://developers.google.com/secure-data-connector/ – Thilo

+0

Bạn sẽ cần phải sử dụng một số cơ chế khác. –

+5

Tại sao bạn dựa vào địa chỉ IP từ xa? Làm trắng ứng dụng của bạn sẽ liệt kê các ứng dụng trong danh sách trắng của ứng dụng trong danh sách trắng. Sử dụng xác thực. –

Trả lời

14

Bên cạnh những câu trả lời khác, hỗ trợ đầu GAE hướng dẫn tôi tới tên này, đặc biệt là địa chỉ IP nguồn cho URLFetch cuộc gọi:

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

mà trả lời:

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

nếu bạn rồi truy vấn những danh sách này, bạn sẽ nhận được danh sách các dải ô này (kể từ 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

Xem thêm: http://stackoverflow.com/a/16965139/768176 – ckhan

6

Sử dụng lệnh:

dig -t txt _netblocks.google.com 

để có được các khối google ip mới nhất, và sau đó bạn có thể thêm kết quả vào danh sách trắng của bạn. Hãy lưu ý rằng danh sách không tĩnh và được cập nhật theo thời gian.

+0

Điều này chỉ áp dụng cho các máy chủ thư của Google. Các dịch vụ khác (như Maps, v.v.) có địa chỉ IP khác với địa chỉ được liệt kê trong netblock IP4 đó. – Josiah

+1

Kể từ ngày 29.04.2013 cũng có các yêu cầu đến từ phạm vi sau: Truyền thông cấp 3, 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

Từ GAE documentationn, bạn cần phải sử dụng đào lệnh bởi vì nó không hiện đang cung cấp một cách để ánh xạ địa chỉ IP tĩnh cho một ứng dụng, do thiết kế của nó:

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

Nếu đào lệnh không có sẵn trên hệ thống của bạn, bạn có thể sử dụng một dịch vụ trực tuyến:

Như thời điểm viết câu trả lời này, truy vấn http://www.digwebinterface.com/?hostnames=_netblocks.google.com&type=TXT&useresolver=8.8.4.4&ns=self&nameservers=ns1.google.com lợi nhuận:

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

Đây là định dạng danh sách cho bảng điều khiển API Google nếu bạn cần nó:

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 

Xin lưu ý các dãy IP có thể thay đổi trong tương lai, do đó bạn sẽ cần phải chạy truy vấn này bất cứ lúc nào.

+1

Đây là một lớp lót để giúp bạn phân tích cú pháp: '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

Và đây là danh sách được cập nhật kể từ ngày 20 tháng 3 năm 2016:

Trích dẫn sử dụng hướng dẫn 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

Tôi đã ghép chúng lại với nhau một cách nhanh chóng, để sử dụng với lệnh 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

tôi đã tạo ra một kịch bản ruby ​​cho mục đích này chính xác (siêu đơn giản, dễ dàng cập nhật):

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