Script to validate domains
目的是从一个文件中读取域列表,并执行查找以确认可到达性和我的最终解决方案。
这就是我写的:
1 2 3 4 5 6 7 8 9 10 11 12 13 | #!/usr/bin/python import os import socket f = open('file1.lst', 'r') s = f.readlines() for i in s: print i socket.gethostbyname(i.strip()) f.close() |
1 2 3 4 5 6 | for i in s: print i try: socket.gethostbyname(i.strip()) except socket.gaierror: print"unable to get address for", i |
如果找不到地址,那么
请注意,您还需要一些代码来检查连接性。
这是我写来做同样事情的。它可能对您有用:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import argparse from socket import getaddrinfo if __name__ =="__main__": parser = argparse.ArgumentParser(description='Check for validity of domains in list exported from exchange', version='%(prog)s 1.0') parser.add_argument('infile', nargs='+', type=str, help='list of input files') args = parser.parse_args() # Read domains from file domains = [] for f in args.infile: with open(f, 'rt') as data: for line in data.readlines(): split = line.replace('\x00',"").split(':') if split[0].strip() == 'Domain': domains.append(split[1].strip()) # Check each domain for domain in domains: try: getaddrinfo(domain, None) except Exception, e: print"Unable to resolve:", domain |
请注意,我的输入文件的格式与您的稍有不同,因此您需要调整输入部分。
1 | socket.gethostbyname(i.strip()) |
在
注意:这将只验证该域是否存在于DNS系统中,而不是它是否可以访问/运行。为了实现这一点,您必须在它正在监听的端口上打开与远程主机的连接,
您正在将字符串
应该是
这个问题可能有用:检查一个网站是否通过python启动。