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運行, 使用風險自負,本人不會負責,版權
所無,歡迎傳播,修改,或作任何用途, 最後祝大家新年快樂,除了土共
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. :(
看来这个系统的教本处理功能真的很大。
看不懂你的代码,不过我想既然破网了,获取代理应该不是问题了吧。
搂住应该提供些在不用破网的情况下,也能安全获取代理的方法!
這些網站沒被封鎖,直接執行腳本就可以, 附上 Windows XP cygwin的rxvt終端機執行腳本的畫面
http://www.imgnets.com/viewer.php?id=86756157.jpg (http://www.imgnets.com/viewer.php?id=86756157.jpg)
这个批处理文件很好用。WINDOWS下面用cygwin不够方便,毕竟windows下面土生土长的软件也够多了。
用wine好像不能用无界吧?
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也可
如果我時間許可,我想嘗試寫翻牆軟件,這對我來說可是大工程,也不知能不能完成?
更新腳本,減少多餘代碼
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