{"id":19873259,"url":"https://github.com/navytitanium/masscan-proxies-tester","last_synced_at":"2025-09-15T03:39:47.037Z","repository":{"id":107769038,"uuid":"165565286","full_name":"NavyTitanium/Masscan-Proxies-Tester","owner":"NavyTitanium","description":"Test proxies returned by a Masscan scan","archived":false,"fork":false,"pushed_at":"2019-02-28T02:19:52.000Z","size":7849,"stargazers_count":33,"open_issues_count":1,"forks_count":10,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-07T06:35:29.740Z","etag":null,"topics":["free-proxies","free-proxy-ip","free-proxy-list","masscan","open-proxies","open-proxy","proxies","proxy-checker","proxy-list","proxy-testing"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NavyTitanium.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2019-01-13T23:17:24.000Z","updated_at":"2024-11-27T09:16:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"613ff9e2-8f05-4356-90b2-57e137a2c844","html_url":"https://github.com/NavyTitanium/Masscan-Proxies-Tester","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NavyTitanium/Masscan-Proxies-Tester","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NavyTitanium%2FMasscan-Proxies-Tester","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NavyTitanium%2FMasscan-Proxies-Tester/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NavyTitanium%2FMasscan-Proxies-Tester/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NavyTitanium%2FMasscan-Proxies-Tester/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NavyTitanium","download_url":"https://codeload.github.com/NavyTitanium/Masscan-Proxies-Tester/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NavyTitanium%2FMasscan-Proxies-Tester/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274005333,"owners_count":25205934,"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","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["free-proxies","free-proxy-ip","free-proxy-list","masscan","open-proxies","open-proxy","proxies","proxy-checker","proxy-list","proxy-testing"],"created_at":"2024-11-12T16:18:05.019Z","updated_at":"2025-09-07T06:35:57.056Z","avatar_url":"https://github.com/NavyTitanium.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Parse the output file of a [Masscan](https://github.com/robertdavidgraham/masscan) scan and try to connect to a website with IPs:Port as the proxy. The script fills a queue with the proxies and use multiple threads to consume it. \nThe format expected is produced by Masscan with the **-oL** parameter. However, it should be easy to adjust the script to support other formats. You could adjust the function **parse_results** to read the scan results from [another data repository](https://scans.io) for example.\n\n![](samplerun.gif)\n\nTo keep track of the proxies tested, the script try to detect the ODBC driver and connects to the local MySQL database with it. Don't forget to change your password in the connection string!\n\n### Installation\nRHEL / CentOS:\n```\n# yum install unixODBC\n# yum install unixODBC-devel\n```\nUbuntu :\n```\n# apt-get install python3-dev\n# apt-get install unixodbc-dev\n```\nThen:\n```\n# pip3.7 install -r requirements.txt\n```\n### Usage\n```\n# python3.7 process.py --help\nUsage: process.py [options]\n\nOptions:\n  -h, --help            show this help message and exit\n  -m MASSCAN_RESULTS, --masscan=MASSCAN_RESULTS\n                        Specify the file containing Masscan's results.\n                        Default: /root/masscan/data/out.txt\n  -w WEBSITE, --website=WEBSITE\n                        (Optional) Specify the website used to test the\n                        proxies. Default: http://perdu.com\n  -p THREADS, --thread=THREADS\n                        (Optional) Specify the number of threads used to test\n                        the proxies. Default: 10\n  -t TIMEOUT, --timeout=TIMEOUT\n                        (Optional) Specify the timeout period when testing a\n                        proxy. Default: 6\n  -q QUEUE_SIZE, --queue=QUEUE_SIZE\n                        (Optional) Specify the size of the queue. Default:\n                        10000\n  -i IGNORE, --ignore=IGNORE\n                        (Optional) Ignore integrity validation of returned\n                        content\n  -v VERBOSITY, --verbose=VERBOSITY\n                        (Optional) Set the level of logging to DEBUG. Default:\n                        INFO\n  -r REVERSE, --reverse=REVERSE\n                        (Optional) Start reading the results file from the\n                        end. Useful when you want to restart the script from a\n                        large file that has been already partially processed.\n                        Default: In order\n```\n\n### Masscan usage example\n```\n# masscan 0.0.0.0/0 -p 3128,8080,5555,8000 --excludefile exclude.conf -oL out.txt\n```\n\n### Masscan-Proxies-Tester usage example\n```\n# python3.7 process.py -p 50 -q 500 -m scan_final.txt -t 7\n2019-01-11 00:06:18,250 - Hash value of the content of http://www.perdu.com : aeb7415366b7e5bd8f33664efa7ff31b\n2019-01-11 00:06:19,250 - Reading scan_final.txt\n2019-01-11 00:06:19,635 - Starting 50 threads for processing\nTotal processed:  19% [#       ] 385964/2000000 (269 Successful 314024 Invalid) - Queue size: 499/500 | ETA:  2 days, 6:26:15 | Elapsed Time: 13:01:03\n....\n```\n\n### Integrity validation\n\nSpecifying **-i** or **--ignore** override this validation.\n\nBy default, the content of the page returned by a proxy (when the connection returned status code 200) will be verified for integrity by comparing the MD5 hash of the content. If the hash doesn't match, we look for:\n * The presence of the title of the website used to test the integrity\n * The words 'login' or 'authorization' to detect a potential login page\n \nIf this fail to recognized the page, we simply save the title of the page.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnavytitanium%2Fmasscan-proxies-tester","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnavytitanium%2Fmasscan-proxies-tester","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnavytitanium%2Fmasscan-proxies-tester/lists"}