IPローテーションとは、プロキシがあなたの代わりに使用する送信元IPアドレスを、リクエストごと、一定時間後、または要求に応じて変更し、アクティビティを単一のアドレスに集中させずに複数のアドレスに分散させることを指します。これは、Webサイトが自動化に対して持つほぼすべての防御策がIP単位で機能するためです。レート制限、リクエスト予算、禁止リストなどがそれにあたります。正しくローテーションすれば、各IPはすべてのしきい値を下回りますが、誤ってローテーションすると、自分のログインを壊してしまう可能性があります。このガイドでは、その仕組みとトレードオフについて説明します。
ローテーションが解決する問題
サイトが1時間に5,000件のリクエストを1つのIPから受信した場合、それがスクリプトであると正しく判断します。そして、CAPTCHA、429 Too Many Requests、またはサイレントブロックで応答します。同じ5,000件のリクエストを500のIPから送信した場合(各IPから10件ずつ)、それぞれが数ページを閲覧した500人のユーザーのように見えます。トラフィックの内容は変わりませんが、アドレスへの分散だけが変わります。
したがって、ローテーションは偽装ではなく、評判の負荷分散です。各IPは特定のサイトとの間で信頼の予算を持っており、ローテーションにより、1つの予算を使い果たす代わりに、多くの予算から少しずつ使うことができます。
ローテーションプロキシの実際の仕組み:バックコネクトゲートウェイ
10,000のIPアドレスのリストを受け取って自分で切り替えるわけではありません。代わりに、プロバイダーはgate.provider.com:7777のような単一のエンドポイントを提供します。これはバックコネクトまたはゲートウェイプロキシと呼ばれます。あなたは常にその1つのアドレスに接続します。その背後で、プロバイダーのシステムは、ユーザー名または特別なヘッダーで設定したルールに基づいて、接続ごとにプールから出口IPを選択します。
典型的な認証情報は次のようになります:
user-country-de-city-berlin-session-a1b2c3-sessTime-10:password
ハイフンで区切られた各セグメントはゲートウェイへの指示です:ベルリンのドイツIPを使用し、a1b2c3という名前のセッションでは同じ出口を維持し、そのセッションを10分間持続させます。正確な構文はプロバイダーによって異なりますが、モデルは普遍的です:1つのエンドポイント、ログイン内のパラメータ、セッションごとに選択される出口。
利点は実用的です。アプリケーションは取得したIPを知る必要がなく、死んだIPは透過的に交換され、ジオターゲティングは新しい購入ではなく文字列の変更で実現できます。
ローテーションセッションとスティッキーセッション
これらはすべてのゲートウェイが提供する2つのモードであり、間違った方を選択することは最も一般的なローテーションの間違いです。
| ローテーション(リクエストごと) | スティッキー(セッション) | |
|---|---|---|
| IPの変更 | 新しい接続ごと | 設定された時間(通常1〜30分、プロバイダーによっては数時間まで)または解放するまで保持 |
| Cookie / ログイン | 壊れる — サイトは毎回新しい訪問者と見なす | 維持される — サイトはフロー全体で1人の訪問者と見なす |
| 最適な用途 | ステートレスな取得:商品ページ、検索結果、公開リスト | マルチステップフロー:ログイン → 閲覧 → チェックアウト、フォーム送信、セッションCookieを必要とするもの |
| リスク | ローテーション自体からのリスクはないが、リクエストごとのフィンガープリントのリスクがある | 長時間のセッションは1つのIPにアクティビティが蓄積される |
| 選択方法 | セッションパラメータを省略 | セッションIDを渡し、継続性のために再利用し、ローテーションするには変更する |
ルール:サイトがリクエスト間でユーザーを記憶する必要がある場合はスティッキーを使用し、各リクエストが独立している場合はローテーションを使用します。10,000の商品ページをスクレイピングする場合はローテーション。ログインしてカートに追加する場合は、そのユーザーのフローの間スティッキーにし、次のユーザーには新しいセッションを使用します。
落とし穴:セッション中のローテーション
不正防止システムは、ログイン中のセッションのIPがフロー中に国やASNをまたいで変わることを特に監視しています。実際のユーザーがスマートフォンでWi-Fiから4Gに切り替えるときにIPが1回変わることはありますが、ドイツのチェックアウトのステップ3でブラジル人になることはありません。セッションが予期せず切断された場合は、スティッキーウィンドウが期限切れになっていないか確認してください。
ローテーション戦略
- リクエストごと。最大の分散、継続性ゼロ。スクレイピングのデフォルト。
- 時間指定。N分ごとに新しいIP。短い継続性が必要なタスク(結果のページネーション、リダイレクトチェーンの追跡)に適しています。
- オンデマンド。コードがローテーションのタイミングを決定 — 通常は403/429、CAPTCHA、またはIPごとのカウンタがしきい値に達した後。最も効率的で、必要なときだけローテーションし、良好なIPを維持できます。
- ターゲットごと。サイトごとに異なるローテーションルール:攻撃的なターゲットには高速、寛容なターゲットには低速。成熟したスクレイピングセットアップではドメインごとにこれを行います。
- 手動 / モバイル再接続。モバイルモデムを使用する場合、再接続を強制するとキャリアから新しいIPが要求されます。アカウント間やウォームアップステップの後に意図的に使用されます。
ローテーション間隔の選び方
普遍的な数値はありません。適切な間隔は、ターゲットのIPごとの許容度とスループットによって決まります。次の3つの質問から計算します:
- サイトはIPごとに何回のリクエストを許容してから反応しますか?測定します:意図したペースで1つのIPからリクエストを送信し、CAPTCHA、429、または応答の低下が発生するまで続けます。それをNと呼びます。Nを大幅に下回る間隔でローテーションします — 半分が安全なマージンです。
- 全体で1分間に何回のリクエストが必要ですか?IPごとのペースで割って、同時にアクティブにする必要があるIPの数を算出します。プランの同時接続数がそれをカバーしている必要があります。
- フローの一部で継続性が必要ですか?必要な場合、その部分はフローにかかる時間以上スティッキーセッションで実行し、その後ローテーションする必要があります。
実用的な出発点(測定に基づいて調整):
| タスク | 開始時のローテーション |
|---|---|
| 公開ページのスクレイピング、寛容なサイト | 50〜100リクエストごと、またはプールが大きい場合はリクエストごと |
| 公開ページのスクレイピング、攻撃的なアンチボット | リクエストごと、遅延と人間らしい順序を追加 |
| 検索エンジンの結果ページ | リクエストごと、SERPはオンラインで最もレート制限が厳しい面です |
| ログイン + いくつかのアクション | ユーザーセッションごとに10〜30分スティッキー、その後ローテーション |
| 文書化されたIPごとの制限があるAPI | カウンタが制限に近づいたときに正確にローテーション、それより早くはしない |
| 長期間使用するアカウント(販売者、広告アカウント) | ローテーションしない — 静的IPを使用、ローテーション自体が危険信号です |
最後の行は繰り返す価値があります:ローテーションはボリュームの匿名性のためであり、維持するアカウントのためではありません。毎日異なるIPからログインするマーケットプレイスの販売者アカウントは盗まれたように見えます。永続的なアイデンティティには永続的なアドレス(ISPプロキシや専用モバイルポート)を与え、ローテーションは使い捨てのトラフィックに限定してください。静的IPを提供するタイプについては、プロキシタイプの比較を参照してください。
ローテーションとジオターゲティング
ローテーションは指定したターゲット内で発生します。国全体のプールでのローテーションは「ドイツのどこか」には適しています。タスクが「ミュンヘンの買い物客」の場合、ローテーションをその都市に制限しないと、各リクエストが異なる場所に着地し、位置情報を認識するサイトは訪問者がテレポートしていると見なします。プロバイダーは上記の例のように認証情報文字列でこれを公開しています。国ローテーションに関する注記も参照してください。
ローテーションで解決できないこと
同じCookie、同じブラウザフィンガープリント、同じTLS署名を送信しながらIPをローテーションしても、多くの訪問者を作成するわけではなく、住所を変える不審な習慣を持つ1人の訪問者を作成するだけです。フィンガープリントを行うサイトは、セッションをリンクします。ローテーションは、新しいセッション状態(アイデンティティごとの新しいCookie jar、セッションごとの一貫したUser-Agent、ブラウザ自動化の場合はアイデンティティごとのアンチディテクトプロファイル)と組み合わせる必要があります。IPはアイデンティティの1つの側面であり、他の側面と同期してローテーションします。
よくある質問
バックコネクトプロキシとは何ですか?
プロバイダーが提供する単一のゲートウェイアドレスで、各接続をプール内の異なる出口IPに転送します。ホストとポートを1つ設定するだけで、ローテーションはプロバイダー側で行われます。ほぼすべての住宅用およびモバイルプロキシサービスはこの方法で販売されています。
スティッキーセッションとは何ですか?
ゲートウェイが名前付きセッションの出口IPを一定期間維持し、Cookieとログインがリクエスト間で維持されるモードです。プロキシユーザー名にセッション識別子を渡すことで選択し、識別子を変更すると新しいIPが取得されます。
Webスクレイピングではどのくらいの頻度でローテーションすべきですか?
各IPがターゲットの観測されたIPごとの許容度の約半分を超えない程度の頻度です。ほとんどの保護されたサイトではリクエストごと、寛容なサイトでは数十リクエストごとです。推測ではなく許容度を測定してください — サイトによって異なり、時間とともに変化します。
IPローテーションは禁止を防ぎますか?
ボリュームによるIPごとの禁止は防ぎますが、フィンガープリント、行動、資格情報によって引き起こされる禁止は防ぎません。また、セッション中のローテーション自体が不正防止チェックを引き起こす可能性があります。ローテーションはいくつかのコントロールのうちの1つです。
自分のアカウントでIPをローテーションすべきですか?
一般的にはいいえ。維持したいアカウントは、主張する場所と一致する安定したIP上に置くべきです。異なるアカウント間でのみローテーションし、同じアカウント内では決してローテーションせず、同じプラットフォームのアカウント間でIPを共有しないでください。
ローテーションとスティッキーはどちらが高価ですか?
通常、GB単位のプランでは同じです。プールは同じで、割り当てルールが異なるだけです。一部のプロバイダーは専用静的IP(「スティッキー」の極端な例)を別途高額で提供しています。