Advertisement
overloop

verify_proxy.sh

May 10th, 2013
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.13 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. log_name="verify_proxy.log"
  4. # not actually threads, processes
  5. threads=50
  6. # ddos bash.org, lel
  7. sample_url=http://bash.org/images/paypal.gif
  8. sample_size=857
  9.  
  10. function show_help_and_exit {
  11.     echo "usage:"
  12.     echo "$0 unverified.txt verified.txt"
  13.     echo "$0 ip:port ip:port ip:port"
  14.     echo "$0 [--help|-h]"
  15.     exit 0
  16. }
  17.  
  18. function verify_list {
  19.     proxies_length=$( cat $1 | wc -l )
  20.     tmp_dir=$( mktemp -d )
  21.     lines=$(( proxies_length / threads + 1 ))
  22.     split -l $lines "$1" -d "$tmp_dir/unverified"
  23.     for src_name in $( find "$tmp_dir" -iname "unverified*" ); do
  24.         dst_name=$( echo $src_name | sed "s,unverified,verified," )
  25.         $0 "$src_name" "$dst_name" -thread &>> "$log_name" &
  26.         #echo $dst_name
  27.     done
  28.     #wait for all
  29.     while true; do
  30.         unverified=$( ls $tmp_dir | grep "unverified" | wc -l )
  31.         if [ $unverified -eq 0 ]; then
  32.             break
  33.         fi
  34.         sleep 10
  35.     done
  36.     cat $tmp_dir/verified* > $2
  37.     rm -rf "$tmp_dir"
  38.     echo $( date "+%Y-%m-%d %H:%M:%S" ) "Proxies verified" >> "$log_name"
  39. }
  40.  
  41. function verify_list_thread {
  42.     for proxy in $( cat $1 ); do
  43.         export http_proxy=$proxy
  44.         sample_tmp=$( mktemp )
  45.         wget --timeout=10 --tries=2 -nv -O "$sample_tmp" "$sample_url"
  46.         sample_verified_size=$( stat -c%s $sample_tmp )
  47.         #echo $sample_size
  48.         #echo $sample_verified_size
  49.         if [ $sample_size -eq $sample_verified_size ]; then
  50.             echo $proxy >> $2
  51.             #echo "equal"
  52.         fi
  53.         rm "$sample_tmp"
  54.     done
  55.     rm $1
  56. }
  57.  
  58. function verify_proxy {
  59.     proxy=$1
  60.     export http_proxy=$proxy
  61.     sample_tmp=$( mktemp )
  62.     wget --timeout=10 --tries=2 -nv -O "$sample_tmp" "$sample_url" &>> "$log_name"
  63.     sample_verified_size=$( stat -c%s $sample_tmp )
  64.     if [ $sample_size -eq $sample_verified_size ]; then
  65.         echo $proxy
  66.     fi
  67.     rm "$sample_tmp"
  68. }
  69.  
  70. if [ $# -eq 0 ]; then
  71.     show_help_and_exit
  72. elif [ "$1" == "--help" ] || [ "$1" == "-h" ]; then
  73.     show_help_and_exit
  74. elif [ "$3" == "-thread" ]; then
  75.     verify_list_thread $1 $2
  76. elif [ -f "$1" ]; then
  77.     verify_list $1 $2
  78. else
  79. n=$#
  80. for (( i=1;i<=n;i++ )); do
  81.     argv=${!i}
  82.     proxy=$( echo $argv | grep -o "[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+:[0-9]\+" )
  83.     if [ ! -z "$proxy" ]; then
  84.         verify_proxy $proxy
  85.     fi
  86. done
  87. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement