В python модуль sys
обрабатывает аргументы командной строки.
Это дает вам массив параметров командной строки, где sys.argv[0]
- это имя исполняемого файла, а все последующие элементы - пользовательские параметры.
Это делает ваш код:
import ssl import OpenSSL import time import sys
def get_SSL_Expiry_Date(host, port):
cert = ssl.get_server_certificate((host, 443))
x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)
raw_date = x509.get_notAfter()
decoded_date = raw_date.decode("utf-8")
print (decoded_date)
dexpires = time.strptime(decoded_date, "%Y%m%d%H%M%Sz")
print (dexpires.tm_mon,"/",dexpires.tm_mday,"/",dexpires.tm_year)
if (len(sys.argv) == 1):
sys.stderr.write("%s: Give hostname as an argument, optionally a port too" % (sys.argv[0]))
sys.exit(1)
hostname = sys.argv[1]
port = 443
if (len(sys.argv) == 3):
port = int(sys.argv[2])
get_SSL_Expiry_Date(hostname, port)
Очевидно, вы могли бы сделать это и для порта.Есть и другие модули синтаксического анализа командной строки, так что вы можете сказать --port=
и т. Д.