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')