同じプロキシIPでポートが違う場合、重複になる?
IPアドレスとポートは、組み合わせで接続先を識別します。プロキシリストの取り込み、テスト、重複削除でもこの違いを保ちましょう。
IPアドレスが同じでもポートが異なる2行は、別のエンドポイントです。IPの重複だけを理由に一方を削除すると、動作するプロキシや別のプロキシプロトコルを失う可能性があります。
たとえば、203.0.113.10:8080と203.0.113.10:1080は異なるポートへ接続します。一方がHTTP、もう一方がSOCKS5の場合もあります。アクセス規則や利用可能性も異なるかもしれません。これらのポート番号は例であり、実際のサービスを確定するものではありません。
エンドポイント全体をテストする
ポート8080がタイムアウトしても、ポート1080へのリクエスト成功は最初の行が使える証拠にはなりません。各テストでプロトコル、アドレス、ポートを記録してください。「このIPは死んでいる」だけの報告では、結果の説明に役立つ情報が失われます。
逆も同様です。2つのポートが最終的に同じ送信元アドレスを使うこともありますが、同一の接続エンドポイントになるわけではありません。インフラや制限を共有する可能性があるため、両方の行を残しても、独立した2つの運営者や異なる2つの出口がある証明にはなりません。
何を重複とみなすか
既知の単一プロトコルを使う単純なリストでは、正規化したIPアドレスと数値のポートで重複を除きます。IPv4専用のPython整理例は、この規則を通常のIP:port行に適用します。ファイルに複数のプロトコルが混在する場合は、その情報も残してください。無料プロキシリストから取り込む際も、各アドレスとポートにプロトコルを添えて保持します。
まったく同じIP:portに2つのラベルがある場合は、詳しい確認が必要です。HTTPとHTTPSの項目は、CONNECTにも対応する1つのHTTPプロキシを表すことがあります。サービスが複数のハンドシェイク形式を受け付ける場合もあります。ラベルの意味を理解してから統合し、テキスト整理の過程で機能情報を捨てないでください。
表記が見かけ上の違いを生む
08080と8080がどちらも10進数のポートを表すなら、数値は同じです。IPv6アドレスにも同等の文字列表記が複数あります。比較前にアドレスとポートを正規化し、トラブル調査に備えて元の出典を残します。
重複削除はリストの形式を整える作業です。エンドポイントがオンラインか、2つのエンドポイントに別々の出口があるか、国ラベルが正しいかを確認するものではありません。