失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python 批量域名证书过期查找(二) 从阿里云导出后的文件夹中的excel查找

python 批量域名证书过期查找(二) 从阿里云导出后的文件夹中的excel查找

时间:2020-06-08 00:15:38

相关推荐

python 批量域名证书过期查找(二) 从阿里云导出后的文件夹中的excel查找

python 读取文件夹中 从阿里云导出后的域名excel 判断域名 ssl 过期

import osimport sslimport socketimport requestsfrom openpyxl import load_workbookfrom dateutil import parserimport pytzimport datetimeimport requests.packages.urllib3.util.ssl_import warningswarnings.filterwarnings('ignore')requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS = 'ALL'def get_domain_content(domain):requests.packages.urllib3.disable_warnings()url = 'https://' + domainresponse = requests.get(url, verify=False).headersprint(response)def get_my_domain(mydomain):try:my_addr = socket.getaddrinfo(mydomain, None)c = ssl.create_default_context()s = c.wrap_socket(socket.socket(), server_hostname=mydomain)s.connect((mydomain, 443))my_cert = s.getpeercert()get_my_cert_dated(mydomain, my_cert, my_addr)# except ssl.CertificateError and socket.gaierror as e:except (OSError, ValueError):print(mydomain)passdef get_my_cert_dated(domain, certs, my_addr):cert_beginning_time = parser.parse(certs['notBefore']).astimezone(pytz.utc)cert_end_time = parser.parse(certs['notAfter']).astimezone(pytz.utc)time1 = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")time2 = cert_end_timeres = compare_time(time1, time2)if res == True:print('\033[0;37;41m%s 失效时间: %s \033[0m' % (domain, cert_end_time)) # my_addr[0][4][0] #cert_beginning_time,else:print('%s 失效时间: %s ' % (domain, cert_end_time)) # my_addr[0][4][0] #cert_beginning_time,def compare_time(time1, time2):d1 = datetime.datetime.strptime(time1, '%Y-%m-%d %H:%M:%S')d2 = datetime.datetime.strptime(time2.strftime('%Y-%m-%d %H:%M:%S'), '%Y-%m-%d %H:%M:%S')delta = d1 - d2print("days is %s", delta.days)if abs(delta.days) <= 60:return Trueelse:return Falsedef all_path(dirname):result = [] # 所有的文件for maindir, subdir, file_name_list in os.walk(dirname):for filename in file_name_list:apath = os.path.join(maindir, filename)result.append(apath)return resultdef getFilesInDir(dirname):res = all_path(dirname)files = []for filename in res:# print(filename)files.append(filename)return filesdef read_excel(filename):basename = os.path.basename(filename)print(basename)bsname = os.path.splitext(basename)relname = bsname[0]wb = load_workbook(filename=filename)# 获取当前活跃的worksheet,默认就是第一个worksheet# ws = wb.activesheets = wb.sheetnamessheet_first = sheets[0]ws = wb[sheet_first]# print(ws.cell('A1').value)# print(ws.cell(row=1, column=1).value)rows = ws.rowscolumns = ws.columnsfor row in rows:# line = [col.value for col in row]# print(line)if row[0].value == "A" or row[0].value == "CNAME":predomain = row[1].valueif predomain != "@" and predomain != "" and predomain != "*" :reldomain = predomain + "." + relname# print(reldomain)get_my_domain(reldomain)# for col in row:#print(col.value)def read_domain_files():# domaintxt = 'domain.txt';# domaintxt = 'domain.txt';# NO 1. read files from excel in dirfiles = getFilesInDir("D:\\project\\python\\domains")# print(files)for filename in files:read_excel(filename)return# NO2. only A and CNAME# NO3. in filename and zhujiwith open(domaintxt, 'r', encoding="utf-8") as file:for domain in file:# time.sleep(1);if domain.strip() != '':get_my_domain(domain.strip())else:print(domain)if __name__ == "__main__":read_domain_files()print('finish')

如果觉得《python 批量域名证书过期查找(二) 从阿里云导出后的文件夹中的excel查找》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。