{"id":19607381,"url":"https://github.com/imanmontajabi/tls-checker","last_synced_at":"2025-04-09T18:16:31.155Z","repository":{"id":164253102,"uuid":"639688537","full_name":"ImanMontajabi/TLS-Checker","owner":"ImanMontajabi","description":"efficiently collecting data for multiple domain names in bulk and very fast","archived":false,"fork":false,"pushed_at":"2024-06-03T00:37:02.000Z","size":246859,"stargazers_count":234,"open_issues_count":1,"forks_count":26,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-04-09T18:16:18.674Z","etag":null,"topics":["data-mining","dns","ping","pypy3","python","singbox","tls","xtls-reality"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ImanMontajabi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-12T02:23:03.000Z","updated_at":"2025-01-11T12:15:35.000Z","dependencies_parsed_at":"2024-05-15T21:46:00.198Z","dependency_job_id":"b33ac073-1d70-420f-96bb-3ce19bc51e9f","html_url":"https://github.com/ImanMontajabi/TLS-Checker","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ImanMontajabi%2FTLS-Checker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ImanMontajabi%2FTLS-Checker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ImanMontajabi%2FTLS-Checker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ImanMontajabi%2FTLS-Checker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ImanMontajabi","download_url":"https://codeload.github.com/ImanMontajabi/TLS-Checker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248085323,"owners_count":21045139,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-mining","dns","ping","pypy3","python","singbox","tls","xtls-reality"],"created_at":"2024-11-11T10:10:20.482Z","updated_at":"2025-04-09T18:16:31.128Z","avatar_url":"https://github.com/ImanMontajabi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/ImanMontajabi/TLS-Checker/assets/52942515/dc37f607-505a-4654-8838-a42a49ecd55d\" alt=\"TLS-Checker\" width=\"200\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eTLS-Checker\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003eThis Python script is designed to gather information about a list of domains.\u003c/p\u003e\n\n[About](https://github.com/ImanMontajabi/TLS-Checker/blob/main/README.md#about) | [Output](https://github.com/ImanMontajabi/TLS-Checker/blob/main/README.md#output) | [Screenshot](https://github.com/ImanMontajabi/TLS-Checker/blob/main/README.md#screenshot) | [Download \u0026 Install](https://github.com/ImanMontajabi/TLS-Checker/blob/main/README.md#download--install) | [How to use](https://github.com/ImanMontajabi/TLS-Checker/blob/main/README.md#how-to-use)\n\n## About\n\nThe script collects various details about each domain, or rather domain names in the first column of `input.csv` including:\n\n- IPv4\n- IPv6\n- Autonomous System Number (ASN)\n- ASN organization\n- ISO code of the country\n- Country name\n- Cipher\n- SSL/TLS version\n- Issuer organization\n- Ping response time from the domain's server\n\n## Output\n\nThe results are saved in a SQLite database named `output.db` and a CSV file named `results.csv`. An example is provided below:\n\n| domain_name  | ipv4           | ipv6                                      | asn   | asn_organ                  | iso_code | country       | cipher                          | tls_version | issuer_organ    | ping |\n|--------------|----------------|-------------------------------------------|-------|----------------------------|----------|---------------|---------------------------------|-------------|-----------------|------|\n| nvidia.com   | 34.194.97.138 | NULL                                      | 14618 | AMAZON-AES                 | US       | United States | ECDHE-RSA-AES128-GCM-SHA256    | TLSv1.2     | Amazon          | 183  |\n| intel.com    | 13.91.95.74    | NULL                                      | 8075  | MICROSOFT-CORP-MSN-AS-BLOCK| US       | United States | TLS_AES_256_GCM_SHA384         | TLSv1.3     | Greater Manchester| NULL |\n| dreamhost.com| 3.163.24.68    | 2600:9000:260f:e400:1d:5c4:5c40:93a1     | 16509 | AMAZON-02                  | US       | United States | TLS_AES_128_GCM_SHA256         | TLSv1.3     | Amazon          | 266  |\n\n## Screenshot\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/ImanMontajabi/TLS-Checker/assets/52942515/7b9d0174-7f33-410e-a050-ba65cc0dbba9\" alt=\"menu-1\" style=\"width:700px\"\u003e\n\u003c/p\u003e\n\n## Download \u0026 Install\n\n- It is strongly recommended to use `PyPy 3.10` instead of the official Python interpreter for significantly better performance.\n  - Download Links: [https://www.pypy.org/download.html](https://www.pypy.org/download.html)\n- After configuring the pip module or virtualenv (optional), you need to install the required modules from `requests.txt`\n  - Official document: [https://doc.pypy.org/en/latest/install.html#installing-more-modules](https://doc.pypy.org/en/latest/install.html#installing-more-modules)\n\n## How to use\n\n- Run `main.py` as the starting point; then you will be asked a series of questions.\n- As the first question, you must declare how many of the available domain names in the `input.csv` file you want to choose.\n\n\u003e [!IMPORTANT]\n\u003e The higher the value you choose for this item, the more resources your computer will consume.\n\n- Active tasks (Semaphore) defines a boundary for active tasks at the moment.\n- `Max workers should be double of the number of active tasks`, for example `if the number of tasks is 100, the number of workers should be 200`, but the `default value (auto)` is calculated using this approach (Python document): \"Changed in version 3.8: Default value of max_workers is changed to min(32, os.cpu_count() + 4). This default value reserves at least 5 workers for I/O-bound tasks. It utilizes at most 32 CPU cores for CPU-bound tasks which release the GIL. And it avoids implicitly using very large resources on many-core machines.\"\n\n\u003e [!IMPORTANT]\n\u003e The more values you choose for items, the more resources your system will consume and may potentially freeze your computer.\n\n- Ping timeout | TLS info timeout (DNS Connection) | Task timeout\n\n\u003e [!IMPORTANT]\n\u003e The longer you set the time, the program may require more time to execute, but the active task's time should always be greater than the ping and TLS times. Default formula: `task timeout = ping timeout + TLS info + 5`.\n\n- You can update the database every few days to get the latest and most up-to-date changes.\n- You can find the `result.csv` in the `csv` directory.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimanmontajabi%2Ftls-checker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimanmontajabi%2Ftls-checker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimanmontajabi%2Ftls-checker/lists"}