python 獲取域名到期時間的方法步驟
需求:
我要查詢百度域名的到期時間或者開始時間
思路分析:
如果在linux系統中直接使用下面命令即可:
echo | openssl s_client -servername www.baidu.com -connect www.baidu.com:443 2>/dev/null | openssl x509 -noout -dates|egrep ‘notAfter'|awk -F'=|GMT' ‘{print $2}'
但是這個命令使用python2 的commands執行不成功,所以隻能換成通過shell腳本去執行。
init_sh函數檢查shell腳本不存在則創建,這樣不需要多寫一個腳本,有程序生成。
#!/usr/bin/python # -*- coding: utf-8 -*- # author: chentufeng # create time: 2020 12 25 import commands,os script_sh = ".tmp.sh" # 自動生成shell腳本用來執行shell命令獲取時間 def init_sh(): if not os.path.exists(script_sh): with open(script_sh, 'w') as file_object: file_object.write("yuming=$1\ntag=$2\n" "ymtime=`echo | openssl s_client -servername $yuming -connect $yuming:443 2>/dev/null | openssl x509 -noout -dates|egrep \"$tag\"|awk -F'=|GMT' '{print $2}'`\n" #時間轉換,如果需要也可以轉換成其他格式 "date -d \"$ymtime\" '+%Y-%m-%d %H:%M:%S'\n") if __name__ == '__main__': #初始化函數 init_sh() yuming = "www.baidu.com" tag = "notBefore" #notBefore 開始時間;notAfter 到期時間 cmd = "sh %s %s %s"%(script_sh, yuming, tag) restatus,retime = commands.getstatusoutput(cmd) print("獲取的時間:%s"%retime)
輸出結果:
到期時間
[root@測試機 ~]# python aa.py
獲取的時間:2021-07-26 05:31:02
開始時間
[root@測試機 ~]# python aa.py
獲取的時間:2020-04-02 07:04:58
到此這篇關於python 獲取域名到期時間的方法步驟的文章就介紹到這瞭,更多相關python 獲取域名到期時間內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Linux環境下生成openssl證書註意細節介紹
- Shell調用curl實現IP歸屬地查詢的腳本
- python commands模塊的適用方式
- linux shell 編程之函數使用詳解
- shell腳本中的正則表達式詳解