# Author: Kerry Cordero
# Version: 1.0.0
# Description: This script prompts for domain and gets the TLS version for that domain
import ssl
import socket
from prettytable import PrettyTable
from colorama import Fore, init
# Initialize colorama
init()
def check_tls_version(hostname, tls_version):
context = ssl.SSLContext(tls_version)
status = None
try:
with socket.create_connection((hostname, 443)) as sock:
with context.wrap_socket(sock, server_hostname=hostname) as ssock:
status = Fore.GREEN + "Success" + Fore.RESET
except Exception as e:
status = Fore.RED + f"Failed ({str(e)})" + Fore.RESET
return status
hostname = input("Please enter the domain name: ")
tls_versions = [(ssl.PROTOCOL_TLSv1, "TLSv1"), (ssl.PROTOCOL_TLSv1_1, "TLSv1.1"), (ssl.PROTOCOL_TLSv1_2, "TLSv1.2")]
if hasattr(ssl, 'PROTOCOL_TLSv1_3'):
tls_versions.append((ssl.PROTOCOL_TLSv1_3, "TLSv1.3"))
# Initialize PrettyTable
table = PrettyTable()
table.field_names = ["TLS Version", "Status"]
for tls_version, tls_name in tls_versions:
status = check_tls_version(hostname, tls_version)
# Add row to table
table.add_row([tls_name, status])
print(table)