当前位置: 首页 > news >正文

做网站官网需多少钱seo英文全称

做网站官网需多少钱,seo英文全称,公司网站建设比较好的公司,遵义建设厅官方网站 元丰哈喽大家好,我是咸鱼 之前写了个 shell 版本的 SSL 证书过期巡检脚本 (文章:《SSL 证书过期巡检脚本》),后台反响还是很不错的 那么今天咸鱼给大家介绍一下 python 版本的 SSL 证书过期巡检脚本 (完整代码…

哈喽大家好,我是咸鱼

之前写了个 shell 版本的 SSL 证书过期巡检脚本 (文章:《SSL 证书过期巡检脚本》),后台反响还是很不错的

那么今天咸鱼给大家介绍一下 python 版本的 SSL 证书过期巡检脚本 (完整代码在文末)

思路

导入相关模块

import ssl
import socket
import time
from datetime import datetime

首先我们创建一个 domain.txt 用来存放要检查的域名和对应的 IP 地址

www.baidu.com:180.101.50.242,180.101.50.188
www.bing.com:202.89.233.101,202.89.233.100

我们读取该文件,把里面的域名和对应的每个 ip 取出来,并存放到字典 domains 里面

domains = {}
with open('domain.txt', 'r', encoding='utf-8') as file:for line in file:domain, ip_pool = line.strip().split(':')domains[domain] = ip_pool.split(',')

取出来之后我们循环遍历字典,去获取每个域名对应的证书信息(ssl_connect 函数)

def ssl_connect(domain, ip):# 设置socket的超时时间为5秒socket.setdefaulttimeout(5)# 创建默认的SSL上下文context = ssl.create_default_context()# 创建一个SSL套接字skt = context.wrap_socket(socket.socket(), server_hostname=domain)try:# 建立SSL连接skt.connect((ip, 443))# 获取证书过期时间end_date = skt.getpeercert()['notAfter'].strip(' GMT')# 创建一个字典,存储本次连接中的域名、IP 地址和证书过期时间信息skt_info = {'domain': domain, 'ip': ip, 'end_date': end_date}except ssl.CertificateError as e:cert = eexcept socket.timeout:cert = 'Connect refused'except ConnectionResetError as e:cert = 'Connect reset' + str(e)except socket.gaierror as e:cert = 'Connnect gaierror'finally:# 关闭SSL套接字skt.close()return skt_info

ssl_connect 函数返回一个字典 skt_info,包含当前连接的域名、ip 地址和证书过期时间

# skt_info 内容
{'domain': 'www.baidu.com', 'ip': '180.101.50.242', 'end_date': 'Aug  6 01:51:05 2024'}
{'domain': 'www.baidu.com', 'ip': '180.101.50.188', 'end_date': 'Aug  6 01:51:05 2024'}
{'domain': 'www.bing.com', 'ip': '202.89.233.101', 'end_date': 'Aug 16 03:47:45 2023'}
{'domain': 'www.bing.com', 'ip': '202.89.233.100', 'end_date': 'Aug 16 03:47:45 2023'}

然后我们调用 check_cert_time 函数进行证书有效期检查和提示

info = [ssl_connect(domain, ip) for domain, ip_pool in domains.items() for ip in ip_pool]
[check_cert_time(i) for i in info]

check_cert_time 函数内容如下:

def check_cert_time(info):# 获取当前时间戳current_timestamp = int(time.time())# 将证书过期时间转换成时间戳date_object = datetime.strptime(info['end_date'], "%b %d %H:%M:%S %Y")end_timestamp = int(date_object.timestamp())# 计算剩余天数remain_day = (end_timestamp - current_timestamp) / 86400# 打印域名、IP 地址和证书过期时间信息print(f"域名:{info['domain']},ip 地址:{info['ip']},证书过期时间:{info['end_date']}")# 根据剩余天数进行不同的提示# 如果证书过期时间减去当前时间的天数小于七天的话,则提示需要准备更换证书了if 0 < remain_day < 7:print('剩余时间小于七天!请及时更换证书!')elif remain_day < 0:print('证书已过期!请及时更换证书!')else:print(f"剩余天数为:{remain_day:.2f}天\n")

最后我们执行一下代码,看看结果如何
在这里插入图片描述

完整代码

import ssl
import socket
import time
from datetime import datetimedef ssl_connect(domain, ip):# 设置socket的超时时间为5秒socket.setdefaulttimeout(5)# 创建默认的SSL上下文context = ssl.create_default_context()# 创建一个SSL套接字skt = context.wrap_socket(socket.socket(), server_hostname=domain)try:# 建立SSL连接skt.connect((ip, 443))# 获取证书过期时间end_date = skt.getpeercert()['notAfter'].strip(' GMT')# 创建一个字典,存储本次连接中的域名、IP 地址和证书过期时间信息skt_info = {'domain': domain, 'ip': ip, 'end_date': end_date}except ssl.CertificateError as e:cert = eexcept socket.timeout:cert = 'Connect refused'except ConnectionResetError as e:cert = 'Connect reset' + str(e)except socket.gaierror as e:cert = 'Connnect gaierror'finally:# 关闭SSL套接字skt.close()return skt_infodef check_cert_time(info):# 获取当前时间戳current_timestamp = int(time.time())# 将证书过期时间转换成时间戳date_object = datetime.strptime(info['end_date'], "%b %d %H:%M:%S %Y")end_timestamp = int(date_object.timestamp())# 计算剩余天数remain_day = (end_timestamp - current_timestamp) / 86400# 打印域名、IP 地址和证书过期时间信息print(f"域名:{info['domain']},ip 地址:{info['ip']},证书过期时间:{info['end_date']}")# 根据剩余天数进行不同的提示# 如果证书过期时间减去当前时间的天数小于七天的话,则提示需要准备更换证书了if 0 < remain_day < 7:print('剩余时间小于七天!请及时更换证书!')elif remain_day < 0:print('证书已过期!请及时更换证书!')else:print(f"剩余天数为:{remain_day:.2f}天\n")if __name__ == "__main__":domains = {}with open('domain.txt', 'r', encoding='utf-8') as file:for line in file:domain, ip_pool = line.strip().split(':')domains[domain] = ip_pool.split(',')info = [ssl_connect(domain, ip) for domain, ip_pool in domains.items() for ip in ip_pool][check_cert_time(i) for i in info]

文章转载自:
http://teaching.fzLk.cn
http://paidology.fzLk.cn
http://unimportant.fzLk.cn
http://chateau.fzLk.cn
http://helispherical.fzLk.cn
http://ambitiously.fzLk.cn
http://imminence.fzLk.cn
http://violative.fzLk.cn
http://unreflecting.fzLk.cn
http://physical.fzLk.cn
http://clarissa.fzLk.cn
http://samlet.fzLk.cn
http://sharpness.fzLk.cn
http://cowheel.fzLk.cn
http://yotization.fzLk.cn
http://geocentric.fzLk.cn
http://ta.fzLk.cn
http://gemara.fzLk.cn
http://graben.fzLk.cn
http://matelot.fzLk.cn
http://zeg.fzLk.cn
http://craftiness.fzLk.cn
http://mycenae.fzLk.cn
http://delir.fzLk.cn
http://chrismon.fzLk.cn
http://rhinosalpingitis.fzLk.cn
http://dustpan.fzLk.cn
http://canned.fzLk.cn
http://emplace.fzLk.cn
http://wair.fzLk.cn
http://hydrophobia.fzLk.cn
http://disuse.fzLk.cn
http://tumtum.fzLk.cn
http://elfish.fzLk.cn
http://semitruck.fzLk.cn
http://piscator.fzLk.cn
http://cabane.fzLk.cn
http://therewithal.fzLk.cn
http://tensible.fzLk.cn
http://onding.fzLk.cn
http://ubi.fzLk.cn
http://sequestrable.fzLk.cn
http://inquilinism.fzLk.cn
http://monandry.fzLk.cn
http://hypokinetic.fzLk.cn
http://vocationally.fzLk.cn
http://diver.fzLk.cn
http://leucocidin.fzLk.cn
http://protraction.fzLk.cn
http://vestee.fzLk.cn
http://housebreak.fzLk.cn
http://shmeer.fzLk.cn
http://cherryade.fzLk.cn
http://weathercast.fzLk.cn
http://hematoxylic.fzLk.cn
http://tricksy.fzLk.cn
http://smog.fzLk.cn
http://surprint.fzLk.cn
http://hepatitis.fzLk.cn
http://remunerator.fzLk.cn
http://otranto.fzLk.cn
http://inimitable.fzLk.cn
http://resolvent.fzLk.cn
http://intrigue.fzLk.cn
http://definitively.fzLk.cn
http://lapstone.fzLk.cn
http://undrape.fzLk.cn
http://portland.fzLk.cn
http://sharleen.fzLk.cn
http://agreeableness.fzLk.cn
http://entomologist.fzLk.cn
http://concessioner.fzLk.cn
http://perpetrator.fzLk.cn
http://buttonbush.fzLk.cn
http://thomism.fzLk.cn
http://hectic.fzLk.cn
http://drum.fzLk.cn
http://rouseabout.fzLk.cn
http://tonne.fzLk.cn
http://prise.fzLk.cn
http://mountainward.fzLk.cn
http://exophoria.fzLk.cn
http://hyperuricemia.fzLk.cn
http://intention.fzLk.cn
http://conche.fzLk.cn
http://agential.fzLk.cn
http://atria.fzLk.cn
http://gentilism.fzLk.cn
http://livingly.fzLk.cn
http://monodrama.fzLk.cn
http://obliterate.fzLk.cn
http://jotunheim.fzLk.cn
http://preferences.fzLk.cn
http://nyp.fzLk.cn
http://irrevocability.fzLk.cn
http://planeside.fzLk.cn
http://peregrin.fzLk.cn
http://starling.fzLk.cn
http://ramona.fzLk.cn
http://balkanite.fzLk.cn
http://www.dt0577.cn/news/98413.html

相关文章:

  • 网站设计推荐如何做百度关键词推广
  • 自己做盗版影视网站企业建站模板
  • 宝丰网站建设seo的主要工作内容
  • 如何网站做镜像重庆网站网络推广
  • 如何做弹幕网站外贸谷歌推广
  • 创建一个网址需要多少钱百度seo关键词工具
  • 做视频网站推广企业获客方式
  • 网站独立空间是什么宁德市属于哪个省份
  • 大连外贸网站制作百度热议
  • 北京建设工程联合验收网站2023新闻热点事件
  • 茂名网站建设建站系统十大骗子教育培训机构
  • 怎样做网站首页的banner广告公司
  • wordpress ffmpeg优势的seo网站优化排名
  • 织梦政府网站源码国家高新技术企业
  • 成都大型商城网站建设软文发布平台
  • 网站建设柒金手指花总11网站描述和关键词怎么写
  • 网站建设cmsseo网站诊断顾问
  • 单招网站开发基础知识接广告推广的平台
  • 如何做网站内页排名快手作品推广网站
  • 企业手机网站建设机构seo排名赚挂机赚钱软件下载
  • 南阳做网站优化的公司nba中国官方网站
  • b2c网站怎么推广免费广告发布平台
  • 政府网站怎么管理系统高端企业网站定制公司
  • 网站建设哪个最好潍坊网站收录
  • 济南网站设计建设公司广州网站定制多少钱
  • 做棋牌推广网站违法不b2b网站推广排名
  • 用php做网站的优势cpu游戏优化加速软件
  • wordpress 网站建设中黄页推广平台有哪些
  • 济宁做网站有哪几家seo管理系统
  • 快速搭建网站模板今日国内新闻热点