>>275
1)
UAとリファラを見るようにして、ツールのライトユーザーを弾く。
→ 弾いた場合はどこかにheader()で飛ばす

2)
閾値以上の連続リクエストにはウェイト(待ち時間)をわざと入れて、リクエストの負荷を減らす。

閾値を連続リクエストにはペナルティで 1秒 × 連続リクエスト回数累計の2乗 * 0.2 とか わざとsleep (待ち時間は適当)
とか、
閾値を超えた連続リクエストにはheader('HTTP/1.0 403 Forbidden');とか返すとか

UAもリファラも偽装できるから、スクリプトかかれたら弾けないけどね。
ダウンロードする側も、自作で上手にスクリプト組んだら実質防御出来ない。