Skip to content

Instantly share code, notes, and snippets.

@pbruna
Created December 18, 2014 14:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pbruna/119b494d1daf839d8723 to your computer and use it in GitHub Desktop.
Save pbruna/119b494d1daf839d8723 to your computer and use it in GitHub Desktop.
Gmail IP Address: Ruby script to get the Gmail public IP adress
#!/usr/bin/env ruby
# From: https://support.google.com/a/answer/60764?hl=en
require 'resolv'
require 'pp'
DNS_SERVER = '8.8.8.8'
SPF_RECORD = "_spf.google.com"
def get_spf_record_array(dns_object, query, delimiter)
response = dns_object.getresources(query , Resolv::DNS::Resource::IN::TXT)
# limpiamos la respuesta
response = response.first.strings.first.gsub!(/v=spf1/,"").gsub!(/~all/,"")
# Creamos el arreglo
net_array = response.split(/#{delimiter}/)
net_array.shift
net_array
end
dns = Resolv::DNS.new(nameserver: DNS_SERVER)
spf_networks = get_spf_record_array(dns, "_spf.google.com", "include:")
spf_networks.each do |net|
# Limpiamos el ultimo caracter que es un espacio
net.chop!
networks = get_spf_record_array(dns, net, "ip4:")
puts networks
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment