作者 主题: Ubuntu下動網通+Multiproxy下載代理腳本和簡單教程  (阅读 13545 次)

离线 twfcc

  • 自由发言用户
  • 注册用户
  • **
  • 帖子: 355
Ubuntu下動網通+Multiproxy下載代理腳本和簡單教程

ubuntu 是我常用的系統,它的wine1.0.1可以運行動網通和Multiproxy,兩者可以串聯在一起使用,
利用Multiproxy的調用多個代理,可以達到分流下載的效果,也可減輕動網通服務器的負載,而且速度比
較快,是我常用的翻牆方式之一

在Multiproxy的 options -> general option -> 點選 Next fastest available server , 把 Auto sort proxy list by speed 打勾, 其它的選項自己試試, 再到 Proxy Server list
,按一下menu -> files -> 點選 import proxy lists -> 選一個名為 proxy.txt的檔案
(Multiproxy的默認檔案),然後再按Menu -> 點選proxy list -> Test all proxies,
它就會測試那些是可用的代理,完成後有響應的代理會是綠色,其它是紅色,
這時再按Menu -> 點選proxy list -> delete non-responding
在啟動動網通後,選F2通道,填入地址 127.0.0.1:8088 ,這是Multiproxy的默認端口,
這時動網通會測試串聯Multiproxy, 成功後會給出端口8580, 有時是8581, 那就可以翻牆了

但是Multiproxy1.2a早就沒有更新,它沒有下載代理和排除指定國家地區代理的功能, 這就非得
自行尋找代理列表,以手動方式進行以上動作,實在太麻煩,這比起蓮花代理麻煩,但wine不能運行蓮
花代理,這只好寫兩個腳本代替,Linux 是一個強大的系統,編寫腳本正是它的強項之一, 我從前編寫
了一個簡單的Perl腳本,用來查找tor網橋的所在地,現在用一個bash腳本下載代理和調用perl腳本,
排除中國,香港,澳門和不知地點的代理,在家目錄下生成proxy.txt, 然後導入給Multiproxy,
這兩個腳本我放在$HOME/bin, 在 $HOME/.bash_profile 加入了
export PATH=$PATH:$HOME/bin
這樣只要在 gnome-terminal 建入 proxy2get.sh就會下載和排除代理,然後生成proxy.txt

bash 腳本: proxy2get.sh
程序代码: [选择]
#! /bin/bash
# this script must be worked together with another perl script, geoip
# public domain
temfile="$HOME/temp.$$"
tmp_proxy_file="$HOME/tmp_proxy.$$"
proxyfile="$HOME/proxy.txt"
proxyurl='http://www.textproxylists.com/proxy.php?allproxy'
trap "rm -f $temfile $tmp_proxy_file ; exit 1" 1 2
if [ -f "$proxyfile" ]
    then
      echo -n "Would you like to keep old $proxyfile? [y|n] "
      read
        case "$REPLY" in
          Y|y) savedfile="$HOME/proxy-$(date +%Y%m%d).txt"
               mv -f "$proxyfile" "$savedfile"
               ;;
            *) rm -f "$proxyfile"
               ;;
         esac
fi
echo ""
echo "We are going to download proxies, this may be take a long time."
echo "Please wait.., press Ctrl-C to terminate."
echo ""
if curl -s "$proxyurl" > "$temfile"
    then
       grep -E '[0-9\.]+:[0-9]+' "$temfile" > "$tmp_proxy_file"
    else
       echo "Could not found $temfile."
       exit 1
fi
i=0
while read line ; do
    proxy=$(echo "$line" | cut -d: -f1)
    search=$(geoip "$proxy") # calling perl script, geoip
    sleep 1
    if echo "$search" | grep -i 'hong kong' ; then
        continue
    fi
    if echo "$search" | grep -i 'China' ; then
        continue
    fi
    if echo "$search" | grep -i 'macau' ; then
        continue
    fi
    if echo "$search" | grep -i 'unknown' ; then
        continue
    fi
    echo "$line" >> "$proxyfile" && ((i++))
done < "$tmp_proxy_file"
echo "$proxyfile is created. $i proxies, pls import to Multiproxy1.2a."
rm -f "$temfile" "$tmp_proxy_file"
exit 0

perl腳本: geoip
程序代码: [选择]
#! /usr/bin/perl
# usage: geoip [given ip] , public domain
# perl version: 5.10.X
use strict;
use warnings;
use LWP::Simple;
use File::Basename;

my $name = basename($0);
my $usage = "Usage:\t $name ip";
my $ip = $ARGV[0] || die "$usage\n";
my $url = "http://www.geody.com/geoip.php?ip=${ip}";
my $search = get($url) or die "Could not open $url: $!\n";
my @search = split /\n/, $search;
my @city = grep /^IP:/, @search;
my $city = join " ", @city;
$city =~ s/<[^>]+>//g;

print "$city\n";
Mac OSX 相信也可使用,windows下可安裝Cygwin運行, 使用風險自負,本人不會負責,版權
所無,歡迎傳播,修改,或作任何用途, 最後祝大家新年快樂,除了土共
« 最后编辑时间: 二月 13, 2010, 06:17:29 am 作者 twfcc »

离线 twfcc

  • 自由发言用户
  • 注册用户
  • **
  • 帖子: 355
Re:Ubuntu下動網通+Multiproxy下載代理腳本和簡單教程
« 回复 #1 于: 二月 13, 2010, 09:43:35 am »
 perl 腳本使用的網站不能完全判斷中國,香港和澳門的代理,我改寫了腳本,
不再調用perl腳本,用ubuntu 內建的 whois 反查,更新腳本,只用這個 shell
腳本即可
bash 腳本: proxy2get.sh
程序代码: [选择]

#! /bin/bash
temfile="$HOME/temp.$$"
tmp_proxy_file="$HOME/tmp_proxy.$$"
proxyfile="$HOME/proxy.txt"
proxyurl='http://www.textproxylists.com/proxy.php?allproxy'
trap "rm -f $temfile $tmp_proxy_file ; exit 1" 1 2
if [ -f "$proxyfile" ]
    then
      echo -n "Would you like to keep old $proxyfile? [y|n] "
      read
        case "$REPLY" in
          Y|y) savedfile="$HOME/proxy-$(date +%Y%m%d).txt"
               mv -f "$proxyfile" "$savedfile"
               ;;
            *) rm -f "$proxyfile"
               ;;
         esac
fi
echo ""
echo "We are going to download proxies, this may be take a long time."
echo "Please wait.., press Ctrl-C to terminate."
echo ""
if curl -s "$proxyurl" > "$temfile"
    then
       grep -E '[0-9\.]+:[0-9]+' "$temfile" > "$tmp_proxy_file"
    else
       echo "Could not found $temfile."
       exit 1
fi
i=0 ; x=0
while read line ; do
    proxy=$(echo "$line" | cut -d: -f1)
    search=$(whois "$proxy") 
    sleep 1
    if echo "$search" | grep -E '^[Cc]ountry:[ \t]+[Hh][Kk]' &> /dev/null
        then
           ((x++))
           continue
    fi
    if echo "$search" | grep -E '^[Cc]ountry:[ \t]+[Cc][Nn]' &> /dev/null
        then
           ((x++))
           continue
    fi
    if echo "$search" | grep -E '^[Cc]ountry:[ \t]+[Mm][Oo]' &> /dev/null
        then
           ((x++))
           continue
    fi
    if ! echo "$search" | grep -E '^[Cc]ountry:' &> /dev/null
        then
           ((x++))
           continue
    fi
    echo "$line" >> "$proxyfile" && ((i++))
done < "$tmp_proxy_file"
echo "$proxyfile is created. $i proxies,"
echo "$x proxies are deleted,located at Hong Kong, China, Macau or unknown"
echo "pls import file to Multiproxy."
rm -f "$temfile" "$tmp_proxy_file"
exit 0

引來不便,在這say sorry. :(

离线 innopeace

  • 注册用户
  • *
  • 帖子: 56
Re: Ubuntu下動網通+Multiproxy下載代理腳本和簡單教程
« 回复 #2 于: 二月 13, 2010, 09:07:40 pm »
看来这个系统的教本处理功能真的很大。
看不懂你的代码,不过我想既然破网了,获取代理应该不是问题了吧。

搂住应该提供些在不用破网的情况下,也能安全获取代理的方法!

离线 twfcc

  • 自由发言用户
  • 注册用户
  • **
  • 帖子: 355
Re: Ubuntu下動網通+Multiproxy下載代理腳本和簡單教程
« 回复 #3 于: 二月 13, 2010, 10:09:45 pm »
這些網站沒被封鎖,直接執行腳本就可以, 附上 Windows XP cygwin的rxvt終端機執行腳本的畫面
http://www.imgnets.com/viewer.php?id=86756157.jpg  (http://www.imgnets.com/viewer.php?id=86756157.jpg)

离线 逝者如斯夫斯基

  • 自由发言用户
  • 注册用户
  • **
  • 帖子: 202
Re: Ubuntu下動網通+Multiproxy下載代理腳本和簡單教程
« 回复 #4 于: 二月 14, 2010, 02:52:35 am »
这个批处理文件很好用。WINDOWS下面用cygwin不够方便,毕竟windows下面土生土长的软件也够多了。
用wine好像不能用无界吧?

离线 twfcc

  • 自由发言用户
  • 注册用户
  • **
  • 帖子: 355
Re: Ubuntu下動網通+Multiproxy下載代理腳本和簡單教程
« 回复 #5 于: 二月 14, 2010, 05:24:03 am »
wine 能運行的軟件(我測試過的)有: puff , myentunnel ,自由門,動網通,逍遙遊
,multiproxy, Qemu, proxifer(?), isilo, 還有很多綠色win32軟件
但無界不能運行,希朢新的wine穩定版可以執行它,
cygwin 是一個linux like環境,可以在windows執行強大的unix 工具,也可調用win32
工具,是我在win32自動化的主要工具,我覺得相當好用,在linux寫好的腳本可直接
使用,shell/perl script 比起批次檔, vbs 實在強得太多了
linux 原生可翻牆的軟件也不少,如JAP, yourfreedom, tor, toonel, ssh, 很多的vpn
,paperbus , indiawebproxy, I2P 這些只要有JAVA就可以用,當然win32也可

如果我時間許可,我想嘗試寫翻牆軟件,這對我來說可是大工程,也不知能不能完成?

离线 twfcc

  • 自由发言用户
  • 注册用户
  • **
  • 帖子: 355
Re: Ubuntu下動網通+Multiproxy下載代理腳本和簡單教程
« 回复 #6 于: 二月 15, 2010, 10:41:35 pm »
更新腳本,減少多餘代碼
proxy2get.sh

程序代码: [选择]
#! /bin/bash
temfile="$HOME/temp.$$"
tmp_proxy_file="$HOME/tmp_proxy.$$"
proxyfile="$HOME/proxy.txt"
proxyurl='http://www.textproxylists.com/proxy.php?allproxy'
trap "rm -f $temfile $tmp_proxy_file ; exit 1" 1 2
if [ -f "$proxyfile" ]
    then
      echo -n "Would you like to keep old $proxyfile? [y|n] "
      read
        case "$REPLY" in
          Y|y) savedfile="$HOME/proxy-$(date +%Y%m%d).txt"
               mv -f "$proxyfile" "$savedfile"
               ;;
            *) rm -f "$proxyfile"
               ;;
         esac
fi
echo ""
echo "We are going to download proxies, this may be take a long time."
echo "Please wait.., press Ctrl-C to terminate."
echo ""
if curl -s "$proxyurl" > "$temfile"
    then
       grep -E '[0-9\.]+:[0-9]+' "$temfile" > "$tmp_proxy_file"
    else
       echo "Could not found $temfile."
       exit 1
fi
i=0 ; x=0
pattern='^[Cc]ountry:[ \t]+[Hh][Kk]|[Cc][Nn]|[Mm][Oo]'
while read line ; do
    proxy=$(echo "$line" | cut -d: -f1)
    search=$(whois "$proxy") 
    sleep 1
    if echo "$search" | grep -E "$pattern" &> /dev/null
        then
           ((x++))
           continue
    fi
    if ! echo "$search" | grep -E '^[Cc]ountry:' &> /dev/null
        then
           ((x++))
           continue
    fi
    echo "$line" >> "$proxyfile" && ((i++))
done < "$tmp_proxy_file"
echo "$proxyfile is created. $i proxies,"
echo "$x proxies are deleted,located at Hong Kong, China, Macau or unknown"
echo "pls import file to Multiproxy."
rm -f "$temfile" "$tmp_proxy_file"
exit 0