Como obtener lista actualizada de IPs de distintos WebServices

Vamos a obtener la lista de IP de distintos servicios como Google, Amazon Web Services, Cloudflare, Yandex, etc.

Algunas podemos sacarlas directamente desde el registro SPF del dominio y otros desde las urls dinámicas que da cada servicio.

En la mayoría de los casos van a darnos los "CIDR blocks" que podremos también convertirlos a IPs ranges.

Si las vas a usar para agregarlos a un Firewall (ya sea permitir o bloquear acceso) deberás ver si es que el firewall te permite usar CIDR block que seria lo ideal, sino tendrás que convertirlas a IP Ranges o IP única.

Google:

nslookup -q=TXT _spf.google.com 8.8.8.8


Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
_spf.google.com text = "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"

Ahora cogemos el resultado de los SPF que nos dara 3 bloques:
_netblocks.google.com, _netblocks2.google.com, _netblocks3.google.com

y ahora tenemos que ver los registros de cada bloque:

nslookup -q=TXT _netblocks.google.com 8.8.8.8

Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
_netblocks.google.com   text = "v=spf1 ip4:35.190.247.0/24 ip4:64.233.160.0/19 ip4:66.102.0.0/20 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:74.125.0.0/16 ip4:108.177.8.0/21 ip4:173.194.0.0/16 ip4:209.85.128.0/17 ip4:216.58.192.0/19 ip4:216.239.32.0/19 ~all"

Por ultimo cogemos cada CIDR block del resultado.

Amazon Web Services:

En el caso de amazon tiene un JSON con todos los bloques de IP:

https://ip-ranges.amazonaws.com/ip-ranges.json

Resultado:

{
  "syncToken": "1590091991",
  "createDate": "2020-05-21-20-13-11",
  "prefixes": [
    {
      "ip_prefix": "35.180.0.0/16",
      "region": "eu-west-3",
      "service": "AMAZON",
      "network_border_group": "eu-west-3"
    },
    {
      "ip_prefix": "52.94.76.0/22",
      "region": "us-west-2",
      "service": "AMAZON",
      "network_border_group": "us-west-2"
    },
    {
      "ip_prefix": "52.95.36.0/22",
      "region": "ap-southeast-2",
      "service": "AMAZON",
      "network_border_group": "ap-southeast-2"
    },
    {
      "ip_prefix": "120.52.22.96/27",
      "region": "GLOBAL",
      "service": "AMAZON",
      "network_border_group": "GLOBAL"
      
     ..
     ..
     ..
     ..

Cloudflare:

Cloudflare también nos da una lista de los IP ranges que utilizan.

https://www.cloudflare.com/ips/

Tambien es posible coger la lista de IPv4 o IPv6

https://www.cloudflare.com/ips-v4

https://www.cloudflare.com/ips-v6

Yandex:

Tambien puedes obtenerlos por medio del registro SPF.

nslookup -q=TXT _spf.yandex.ru 8.8.8.8


Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
_spf.yandex.ru  text = "v=spf1 include:_spf-ipv4.yandex.ru include:_spf-ipv6.yandex.ru ~all"

Luego vemos el registro SPF:

nslookup -q=TXT _spf-ipv4.yandex.ru 8.8.8.8

Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
_spf-ipv4.yandex.ru     text = "v=spf1 ip4:213.180.223.192/26 ip4:37.9.109.0/24 ip4:37.140.128.0/18 ip4:5.45.192.0/19 ip4:5.255.192.0/18 ip4:77.88.0.0/18 ip4:87.250.224.0/19 ip4:93.158.136.48/28 ip4:95.108.130.0/23 ip4:95.108.192.0/18 ip4:141.8.132.0/24 ip4:5.45.254.0/25 ~all"

Términos de Búsqueda:

  • google crawler ip ranges
  • Google servers IP
  • Google bot IP ranges
  • Google robots ips