Python 从域名中查找国家并将结果放入文本文件中
我有下面这个脚本如何检查域名的国家。我想把每个国家的代码放在一个特定的文件中 例如: FR==>FR.txtPython 从域名中查找国家并将结果放入文本文件中,python,dns,Python,Dns,我有下面这个脚本如何检查域名的国家。我想把每个国家的代码放在一个特定的文件中 例如: FR==>FR.txt US==>US.TXT 脚本输出如下所示: domain.com[xx.xx.xx.xx]:美国 脚本: #!/usr/bin/python import socket from geolite2 import geolite2 def origin(ip, domain_str, result): print("{0} [{1}]: {2}".format(domain_s
US==>US.TXT 脚本输出如下所示: domain.com[xx.xx.xx.xx]:美国 脚本:
#!/usr/bin/python
import socket
from geolite2 import geolite2
def origin(ip, domain_str, result):
print("{0} [{1}]: {2}".format(domain_str.strip(), ip, result))
def getip(domain_str):
ip = socket.gethostbyname(domain_str.strip())
reader = geolite2.reader()
output = reader.get(ip)
result = output['country']['iso_code']
origin(ip, domain_str, result)
with open("hostnames.txt", "r") as ins:
for domain_str in ins:
try:
getip(domain_str)
except socket.error as msg:
print("{0} [could not resolve]".format(domain_str.strip()))
if len(domain_str) > 2:
subdomain = domain_str.split('.', 1)[1]
try:
getip(subdomain)
except:
continue
geolite2.close()
我感谢您提供的任何帮助shahaf谢谢您代码正在运行,但我不希望ip打印在文本文件中,只需域:EX:domain1 domain2 domain3
def origin(ip, domain_str, result):
file_name = "{}.txt".format(result)
with open(file_name, 'a') as f:
f.write("{}".format(domain_str.strip()))