MoeClub 5 лет назад
Родитель
Сommit
54f2e4de2a
1 измененных файлов с 25 добавлено и 6 удалено
  1. 25 6
      wget.sh

+ 25 - 6
wget.sh

@@ -1,16 +1,28 @@
 #!/bin/bash
 
-# Usage: bash wget.sh <URL|FileName> <ThreadNum> <LoopNum>
+# Usage: bash wget.sh <URL/FileName> <ThreadNum> <LoopNum> <HOST|Address>
+
 
 FileName=${1:-wget.txt}
 ThreadNum=${2:-10}
 LoopNum=${3:-20}
+ServerHost="$4"
+
+
 UserAgent="Mozilla/5.0"
 
+FileMode=0
+HostMode=0
+
 if [ -f "${FileName}" ]; then
-	Mode=0
-else
-	Mode=1
+	FileMode=1
+fi
+
+echo "${ServerHost}" |grep -q "|"
+if [ $? -eq 0 ]; then
+	ServerName=`echo "${ServerHost}" |cut -d'|' -f1 |sed 's/[[:space:]]//g'`
+	ServerAddr=`echo "${ServerHost}" |cut -d'|' -f2 |sed 's/[[:space:]]//g'`
+	[ -n "$ServerName" ] && [ -n "$ServerAddr" ] && HostMode=1	
 fi
 
 PIPE=$(mktemp -u)
@@ -23,12 +35,19 @@ for((i=0; i<$ThreadNum; i=i+1)); do
 done
 
 function Task() {
-	[ -n "$1" ] && wget --no-check-certificate --header="User-Agent: ${UserAgent}" --header="Referer: $1" "$1" >/dev/null 2>&1
+	if [ -n "$1" ]; then
+		if [ $HostMode -eq 0 ]; then
+	 		wget --no-check-certificate --header="User-Agent: ${UserAgent}" --header="Referer: $1" "$1" >/dev/null 2>&1
+		else
+			_URL=`echo "$1" |sed "s/$ServerName/$ServerAddr/"`
+			wget --no-check-certificate --header="User-Agent: ${UserAgent}" --header="Referer: $1" --header="Host: $ServerName" "$_URL" >/dev/null 2>&1
+		fi
+	fi
 	echo >&777
 }
 
 for((i=0; i<$LoopNum; i=i+1)); do
-	if [ $Mode -eq 0 ]; then
+	if [ $FileMode -eq 1 ]; then
   	for line in `cat ${FileName}`; do
 			read -u777
 			_LINE=`echo -ne "$line" |sed 's/\r//g' |sed 's/\n//g'`