带验证的proxy脚本

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

带验证的proxy脚本

#1

帖子 eexpress » 2009-06-03 13:58

代码: 全选

2009-06-03 13:59:55 三 ~/应用/脚本  
☎ proxy-CN-pac.pl 
WARNING: timestamping does nothing in combination with -O. See the manual
for details.

--2009-06-03 13:59:59--  http://www.proxycn.com/html_proxy/http-1.html
Resolving www.proxycn.com... 221.130.201.146
Connecting to www.proxycn.com|221.130.201.146|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 90835 (89K) [text/html]
Saving to: `STDOUT'

100%[================================================>] 90,835      --.-K/s   in 0.1s    

2009-06-03 14:00:01 (748 KB/s) - `-' saved [90835/90835]

只取国内的ProxyCN的代理地址,且不丢包的。
--189.112.246.145:8080--20%
--187.4.83.62:8080--0%
proxyCN         ="PROXY 187.4.83.62:8080";
2009-06-03 14:00:11 三 ~/应用/脚本  
☎ cat ~/.opera/exp-opera.pac
function FindProxyForURL(url, host){

proxyTor        ="PROXY localhost:8118";
proxyOpenDNS    ="PROXY 208.67.222.222"; 
proxyOpenDNS1   ="PROXY 208.67.220.220"; 
proxyCN         ="PROXY 187.4.83.62:8080";

///home/exp/.opera/exp-opera.pac
//or http://pac.ipcn.org/thu.pac
//需认证 proxyuser:proxy Password:ipcnsoft
//http://proxy.ipcn.org/

host=host.toLowerCase();

if(
        dnsDomainIs(host,"wikipedia.org")
        ||dnsDomainIs(host,"mediawiki.org")
        ||dnsDomainIs(host,"wikiquote.org")
        ||dnsDomainIs(host, ".blogspot.com")
        ||dnsDomainIs(host, ".googlepages.com")
        ||dnsDomainIs(host, ".wordpress.com")
        ||dnsDomainIs(host, ".livejournal.com")
        ||dnsDomainIs(host, "my.opera.com")
        ||dnsDomainIs(host, "my.allhabit.com")
)
//        return "PROXY 127.0.0.1:8118";
return proxyCN;
else return "DIRECT";
}

2009-06-03 14:00:17 三 ~/应用/脚本  
☎ cat proxy-CN-pac.pl 
#!/usr/bin/perl

my $C=`wget -N -O - http://www.proxycn.com/html_proxy/http-1.html`;
my @i=$C=~/<TR.*?<\/TR>/gs;
print "只取国内的ProxyCN的代理地址,且不丢包的。\n";
foreach (@i){
if (/>ProxyCN</) {
/clip\(\'(.*?)\'\)/;
$C=$1;
print "--".$1;
(my $re)=split(":",$1); $re=`ping $re -c 5`; $re=~/\b(\d*)% packet loss/;
print "--".$1."%\n";
next if ($1>0);
$C="proxyCN\t\t=\"PROXY\ $C\"\;";
print $C."\n";
last;
}
}
die "没找到适合的代理。\n" if ! $C=~/^proxyCN/;

#`sed "s/^proxyCN.*/proxyCN\t\t=\"PROXY\ ${r[0]}\"\;/" -i "/home/exp/.opera/exp-opera.pac"`;
my $f="/home/exp/.opera/exp-opera.pac";
open (PAC,$f) or die("没有pac文件。\n");
open (PACNEW,">$f-new");
while(<PAC>){
if (! /^proxyCN/){
print PACNEW;
}
else{
print PACNEW $C."\n";
}
}
close(PAC);
close(PACNEW);
rename "$f-new","$f";
● 鸣学
头像
sevk
帖子: 2060
注册时间: 2007-05-08 16:26
系统: arch
来自: 火星内核某分子内某原子核内
联系:

Re: 带验证的proxy脚本

#2

帖子 sevk » 2009-06-03 14:23

太强了,原来BASH这么牛。
笔记本 :
F208S : gentoo
A460P i3G D6 : UBUNTU + WIN7
UN43D1 : UBUNTU + WIN7
1000人超级QQ群 LINUX + WIN : 31465544 或 18210387
头像
HuntXu
帖子: 5776
注册时间: 2007-09-29 3:09

Re: 带验证的proxy脚本

#3

帖子 HuntXu » 2009-06-03 16:19

好少用代理...
HUNT Unfortunately No Talent...
头像
qiang_liu8183
论坛版主
帖子: 10701
注册时间: 2006-09-10 22:36
系统: Arch Debian
来自: 北京

Re: 带验证的proxy脚本

#4

帖子 qiang_liu8183 » 2009-06-03 17:02

代理太麻烦了
干不了大事就把小事干的大气点
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

Re: 带验证的proxy脚本

#5

帖子 bones7456 » 2009-06-03 17:04

sevk 写了:太强了,原来BASH这么牛。
人家明明是perl...
关注我的blog: ε==3
头像
sevk
帖子: 2060
注册时间: 2007-05-08 16:26
系统: arch
来自: 火星内核某分子内某原子核内
联系:

Re: 带验证的proxy脚本

#6

帖子 sevk » 2009-06-06 10:09

bones7456 写了:
sevk 写了:太强了,原来BASH这么牛。
人家明明是perl...
哦,看错了,原来是 perl. :em06
笔记本 :
F208S : gentoo
A460P i3G D6 : UBUNTU + WIN7
UN43D1 : UBUNTU + WIN7
1000人超级QQ群 LINUX + WIN : 31465544 或 18210387
回复