複数プロトコル対応プロキシチェッカー(proxy-multi-protocol-checker)

Tool

概要

proxy-multi-protocol-checker は、HTTP/HTTPS/SOCKS5 に対応したプロキシの可用性を一括で検査するためのシンプルな Python ツールです。リポジトリルートの proxies.txt に ip:port 形式でプロキシを列挙しておくと、main.py のコマンドラインメニューから検査を開始できます。内部の checker.py がスレッドプールを使って並列で各プロキシに対して接続試行を行い、応答のあったプロキシをプロトコル別に別ファイルへ書き出します。外部の大がかりなフレームワークに依存せず、ローカルで手早くプロキシの健全性を確認したい場面に向いています。

GitHub

リポジトリの統計情報

  • スター数: 58
  • フォーク数: 0
  • ウォッチャー数: 58
  • コミット数: 6
  • ファイル数: 5
  • メインの言語: Python

主な特徴

  • HTTP / HTTPS / SOCKS5 の三種類のプロトコルを個別に検査可能
  • proxies.txt から一括読み込み、各行に ip:port の形式を想定
  • スレッドプールを用いた並列検査で高速化
  • 可用なプロキシをプロトコル別ファイルに自動出力(good_http.txt 等)

技術的なポイント

本プロジェクトはシンプルさを重視した設計で、主に checker.py に検査ロジックが集約されています。README によれば検査は各プロキシに対して HTTP リクエスト等を投げて応答可否を判断する方式で、Python の requests ライブラリと SOCKS サポート(PySocks 等)を requirements.txt で指定している点から、requests の proxies パラメータを用いてプロキシ経由の接続を試みる実装が想定されます。

並列化はスレッドプール(ThreadPoolExecutor など)によって実現されており、I/O バウンドなプロキシ検査に適したアプローチです。スレッド数は設定可能な実装になっている可能性が高く、タイムアウトや例外処理でノイズの多いプロキシ群にも対応できるようになっています。検査対象のプロキシをプロトコル別に分類して出力するため、各プロトコルに対してそれぞれ接続方法(HTTP/HTTPS は通常の requests、SOCKS5 は socks プロキシ経由のセッション)を切り替えて確認している点が特徴です。

入出力面では、プロキシリストのフォーマットが明確に ip:port と定義されており、行頭に # を置くことでコメント扱いにするなど、運用上の利便性も考慮されています。結果ファイル(good_http.txt / good_https.txt / good_socks5.txt)へは検査成功したプロキシのみを追記あるいは上書きで保存する作りになっているため、継続的に検査を回す運用でも使いやすい設計です。

注意点としては、requests ベースの実装は大量並列や高スループット環境ではリソース競合やスレッドオーバーヘッドが出やすいため、より高速化や大規模運用を目指すなら asyncio / aiohttp ベースへの移行や、コネクションプール管理、レート制御、リトライやバックオフ戦略の導入が有効です。また、プロキシの認証(ユーザー名・パスワード付き)や HTTPS の証明書検証ポリシー、プロキシの匿名性判定(透過 / 匿名 / 匿名ではない)などの追加機能を実装すると実用性が高まります。

セキュリティ面では、外部プロキシを利用する際の通信内容漏えいや法的・倫理的な問題に注意が必要です。リポジトリ自体はシンプルな検査ツールであり、どのような用途で使うかは利用者の責任となります。最後に、オープンソースとしての拡張余地が大きく、UI の改善(CLI の引数対応やログレベル)、結果の CSV / JSON 出力、並列度やタイムアウトのパラメータ化などが取り組みやすい改良点です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • README.md: file
  • checker.py: file
  • main.py: file
  • proxies.txt: file
  • requirements.txt: file

まとめ

シンプルで扱いやすいローカル向けのプロキシ可用性チェッカー。拡張しやすく実用性が高い。

リポジトリ情報:

READMEの抜粋: 项目简介 多协议代理检测器(HTTP / HTTPS / SOCKS5),支持从文本文件批量读取代理,使用多线程方式测试可用性,并分别输出可用代理列表。项目为原创实现,不依赖或引用其他仓库的代码或资料。​

功能特性 支持协议:HTTP、HTTPS、SOCKS5 三种代理。​

批量检测:从文件中读取代理列表(每行一个 ip:port)。​

多线程:使用线程池并行检测,加快检测速度。​

结果输出:自动将可用代理写入 good_http.txt / good_https.txt / good_socks5.txt。

文件结构 main.py:命令行入口,菜单和交互。

checker.py:核心检测逻辑和多线程实现。

requirements.txt:Python 依赖列表(requests + SOCKS 支持)。​

proxies.txt:待检测代理列表(需自行填写)。​

代理列表格式 编辑仓库根目录下的 proxies.txt,每行一个代理,格式为:

ip:port

示例:

127.0.0.1:8080

127.0.0.1:1080

可以使用 # 开头的行作为…