DPR-blocked-sites/scripts/2_google_ips.py

30 lines
725 B
Python

import subprocess
def resolve_by_spf(domain):
output = subprocess.run(["nslookup", "-q=TXT", domain], capture_output=True)
lines = output.stdout.decode().split('\n')
result = []
for line in lines:
res = line.find('v=spf')
if res == -1:
continue
values = line[res:].split()
for val in values:
if val.startswith("include:"):
result += resolve_by_spf(val[8:].strip())
if val.startswith("ip4:"):
result.append(val[4:].strip())
return list(dict.fromkeys(result))
ips = resolve_by_spf("_spf.google.com")
with open('ips.txt', 'a') as out:
for ip in ips:
out.write(ip + '\n')