2年前、コンテスト「キヤノン:世界のすべての色」に出会いました。 そして、彼はすぐに簡単な投票システムに注目を集めました。登録するかキャプチャを入力する必要はありませんでした。「この作業に投票する」ボタンをクリックするだけです。
実際、2、3枚の写真をアップロードして、実験を始めました。
1)1台のコンピューターから1回投票できます。 しばらくすると、別のブラウザから投票できます。
2)プロキシまたはVPN、または3gを介して接続する場合、再度投票できます。
OK、Tor + Vidaliaを(これもWindowsコンピューター上に)配置します。 Torが起動します-投票できます。 再起動-それは不可能です。 クッキーを殺し、ユーザーエージェントを変更します。これも可能です。 いいね
ページのソースを開き、投票ボタンがある場所を探します。
<frm action="/work/vote" method="post">
<inut type="hidden" name="photo_id" value="1522" />
<inut type="submit" name="vote" value=" " />
</frm>
絶対に簡単です。 ボタンをクリックすると、リクエストkonkurs.photonews.ru/work/vote?photo_id=1522
少なくともwgetを使用して実行できます。
wget -O /dev/null --referer="http://konkurs.photonews.ru/work/show/1522" ttp://konkurs.photonews.ru/work/vote?photo_id=1522
ここで、IPアドレスを自動的に変更する問題を解決する必要があります。 考えるべきことは何もありません。 しかし、ここに問題があります-wgetはsocs5プロキシでは動作しません。 プロキシチェーンプログラムに30分ごとの検索が追加されました
結果は次のようになりました。
LINK="http://konkurs.photonews.ru/work/vote?photo_id=1522"
REFERER1="http://konkurs.photonews.ru/work/vote?photo_id=1522"
while true
do
sudo /etc/init.d/tor restart
USERA1='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FunWebProducts-MyWay; SV1)'
proxychains wget -nv -O /dev/null --referer="$REFERER1" --user-agent="$USERA1" $LINK
done
カウンターが刻々と過ぎ、声が追加されます。 どうやら、これは私だけでなく、コンテスト管理者にとっても顕著になりました。
ユーザーエージェントによる承認は、1時間あたりの音声に対して、ラッピングレートの急激な低下によって顕著になりました。
これをチャレンジとして受け止め 、 www.useragentstring.com / pages / useragentstring.phpにアクセスしました。そこから10分で、500kbの異なる識別子で構成されるファイルをダイヤルしました。
変更後、スクリプトは次のようになりました(注意、簡単なコード、および単純な問題に対する奇妙な解決策!):
RANGE=4000
LINK="http://konkurs.photonews.ru/work/vote?photo_id=1522"
REFERER1="http://konkurs.photonews.ru/work/vote?photo_id=1522"
cat useragents|awk '{print rand()"\t"$0}'|sort|awk -F'\t' '{print $2}' >useragents2 ; mv useragents2 useragents
while true
do
sudo /etc/init.d/tor restart
USERA1=`number=$RANDOM ; let "number %= $RANGE"; head -n $number useragents |tail -n1`
proxychains wget -nv -O /dev/null --referer="$REFERER1" --user-agent="$USERA1" $LINK
done
この方法では、以前に受け取った50票に対してさらに100票を獲得できました。
動作速度が遅いため(トーラスを再起動する時間)、Amazon ec2で5つのインスタンスを実行することに決定しました。マシン時間58時間でさらに150票を獲得し、消滅しました。 Tolleyは一意の出力ノードを使い果たしました。Tolley管理者はtorノードを禁止しましたが、わかりません。
いいね freeproxy.ruで、1000ルーブルのHTTPプロキシのリストが60ルーブルで購入されました。 そして、コードは(もう一度)変更されました:
RANGE=5000
LINK="http://konkurs.photonews.ru/work/vote?photo_id=1522"
REFERER1="http://konkurs.photonews.ru/work/vote?photo_id=1522"
c1=1
cat useragents|awk '{print rand()"\t"$0}'|sort|awk -F'\t' '{print $2}' >useragents2 ; mv useragents2 useragents
while true
do
c1=$(($c1+1))
echo $c1
proxy_c1=`head -n $c1 proxy |tail -n1`
USERA1=`number=$RANDOM ; let "number %= $RANGE"; head -n $number useragents |tail -n1`
wget -e http_proxy=$proxy_c1 -nv -O /dev/null --referer="$REFERER1" --user-agent="$USERA1" $LINK
done
いくつかのプロキシが死んだ結果のプラグは、wgetを使用して行の最後に「&」を追加し、遅延を導入することで修復されました。 さて、30分後にハングしたプロセスvgetを殺します。 =)
1300パスで数分でさらに500票が得られた後、スクリプトをオフにして、潜んでいます。 午前中、いくつかのテストが開始された後、穴が閉じられていることが明らかになりました。 知りません 正直なところ、私はそれにうんざりしています。
PS:このようなコンテストでの投票は常に2つの要素があります。 私たちは
そして、運がよければ-明示的なラッピングのために結果をキャンセルするか、作業を削除する必要があります。これは一般のユーザーにも見えます。
PPS:上記のすべては空想の産物です。 ランダムリンク。
PPPS:より適切なブログを教えていただければ嬉しいです。