Run a reverse DNS lookup (type PTR)
Domain name ends in googlebot.com. or google.com.
Run a forward DNS lookup (type A)
Verify that response to the same IP
Slide 43
Slide 43 text
No content
Slide 44
Slide 44 text
defmodule GoogleBotVerification do
@subscribe ptr_query: :IN
@subscribe verify_domain: :ptr_query
@subscribe dns_query: :verify_domain
@subscribe verify: :dns_query
@subscribe OUT: :verify
end
Slide 45
Slide 45 text
No content
Slide 46
Slide 46 text
def ptr_query(ip_addr) do
domain = DNSLookup.ptr(ip_addr)
%{ip_addr: ip_addr, domain: domain}
end
Slide 47
Slide 47 text
@gdomains ~w[google.com. googlebot.com.]
def verify_domain(%{domain: domain} = state) do
if String.ends_with?(domain, @gdomains) do
{:ok, state}
else
{:error, :invalid_ptr}
end
end