<:Häschen>

Wie Jeff hier richtig bemerkt hat, ist mein letzter Post schon fast eine Woche her. Das ist natürlich kein Zustand, und da zählt auch die Ausrede nicht, ich wäre das ganze Wochenende mit dem THW beim "Tag der Helfer" gewesen. Der wahre Grund ist sowieso, dass ich erst mal zwei kleine Scripts schreiben musste, bevor ich euch diese Website vorstelle. Aber fangen wir von vorne an.

AdorableBunnies.com ist eigentlich nichts anderes als eine riesige Dateisammlung. Hier können beliebige User anonym beliebigen Kram hochladen, solange es sich um Bilder oder Videos handelt. Was dabei herauskommt ist natürlich klar, und so ist AB.C inzwischen ein riesiges (Hauptverzeichnis und "Uploads" zusammen ca. 1,4 GB) Porno- und Funfilmearchiv geworden.

Der Admin ist sich dessen natürlich bewusst und sorgt dafür, dass leechen soweit wie möglich unterbunden wird. Da ich aber die ganze Site haben wollte (und zwar ohne jede Datei einzeln anzuklicken), habe ich ein bisschen rumprobiert. wget -m führt zu einem sofortigen IP-Ban. Daher habe ich zwei kleine Bash-Scripts geschrieben, die unauffällig die gesamte Seite leerschaufeln...

Die Scripts gehören in das Verzeichnis, in dem später die heruntergeladenen Dateien landen sollen.

getab.sh #!/bin/bash export BASE='http://adorablebunnies.com/' AGENT='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)' wget -q -U "$AGENT" -O - $BASE | grep -oE '<A HREF=[^>]+>[^<]+</A>' | grep -oE "<A HREF=\"[^.][^\"]*\"" | cut -b 10- | tr -d "\"" | tr '\n' '\000' | xargs -0 -n 1 ./getfile.sh

getfile.sh #!/bin/bash AGENT='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)' if [ -z "$BASE" ]; then echo BASE not set <&2 exit 1 fi echo "$1" | grep -E '^/LOADER/' >/dev/null WITHLOADER=$? SKIPWAIT=0 if [ "$WITHLOADER" ]; then TARGET=$(wget -q -U "$AGENT" --referer="$BASE" -O - "http://adorablebunnies.com$1" | grep -oE "URL=[^\"]*|src='[^']*'" | cut -b 5- | tr -d "\"'") if [ ! -z $TARGET ]; then if [ ! -f "$(echo $TARGET | grep -oE '[^/]*$')" ]; then sleep 1 wget -a getfile.log -c -U "$AGENT" --referer="http://adorablebunnies.com$1" "$TARGET" else SKIPWAIT=1 fi fi fi [ "$SKIPWAIT" -eq "1" ] || sleep 3