中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-14 19:04
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]用wget简单检测代理服务器是否可用
楼 主 [原创]用wget简单检测代理服务器是否可用 发表于 2006-11-27 12:27 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线

  平时上网的时候,有时会使用到代理服务器,常规的做法是去一些提供代理服务器列表的网站找一些我们想要的代理。但是上面有很多代理都是不可用的,难道要用手工一个个的去试哪个代理是否可用吗?用我们的批处理脚本就可以完成这个任务了。

  利用wget的代理功能,来下载一个固定的网页,比如www.baidu.com,我下载的是www.ip138.com这个网页,来达到简单检测一些网站的代理服务器列表是否可用的目的。我用的提供代理服务器列表的网站是:http://www.cnproxy.com/proxyedu1.html

  这个批处理并非可以完美的达到我们的目的,里面还有很多参数和格式可以修改,大家可以按照自己的意愿去修改里面的语句和参数。大家有什么意见也可以跟帖提出来。这个批处理最好可以放在一个文件夹中运行,因为中间会生成很多文件。

  关于wget这个小工具,可以在论坛里搜索一下,就可以找到了。

  在此,感谢 electronixtar 兄的提议和 redtek 兄的帮助。

@echo off&setlocal ENABLEDELAYEDEXPANSION&title 代理检测
if exist proxyedu1.html del proxyedu1.html /a/s >nul
if exist useproxy.txt del /a/q useproxy.txt
echo 于 %date% %time% 检测 http://www.cnproxy.com/proxyedu1.html 可用代理如下: >useproxy.txt
echo;>>useproxy.txt
echo ############################################################# >>useproxy.txt
wget http://www.cnproxy.com/proxyedu1.html >nul 2>nul
for /f "tokens=1,2 delims=^<trd>: " %%a in ('type proxyedu1.html ^| findstr /c:"HTTP" ') do (
set set=
set set=%%a
set "set=!set:&#8205=!"
set "set=!set!:%%b"
echo 正在检测 !set! 代理,请稍等....
wget -q -T 3 -t 1 -e "http_proxy=!set!" http://www.ip138.com -O - >nul 2>nul && echo 检测到 ******* !set! ******* 代理可用&&echo ----!set! >>useproxy.txt
)
start useproxy.txt
goto :eof


[ Last edited by lxmxn on 2006-11-27 at 01:01 PM ]
本帖最近评分记录 (共 5 条) 点击查看详情
评分人分数时间
electronixtar +8 2006-11-27 23:50
redtek +5 2006-11-28 00:52
ccwan +4 2006-11-28 04:46
hxuan999 +2 2006-11-28 06:26
honghunter +2 2007-11-22 01:01
2 发表于 2006-11-27 12:49 ·  中国 浙江 宁波 鹏博士宽带
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
UID 40733
性别 男
状态 离线
不错,不错,应该好好挖掘一下 wget 的功能。
wget 有几点给你补充一下:
wget -q 不输出下载记录信息
wget -O - 将下载内容输出到屏幕,不写入文件。
  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

3 发表于 2006-11-27 12:53 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线

  多谢版主的指点啊。

  由于刚学习使用wget,所以还没发现这么多好用的参数呢,就连那个-t参数都是百度了才知道的。汗一个。
  
  我再把代码完善一下。
4 发表于 2006-11-27 22:06 ·  中国 北京 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
这么好玩的代码,又实用又给下载提供了更多的方便~:)))
欣赏~~
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
5 发表于 2006-11-27 22:38 ·  中国 甘肃 兰州 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
我以前也试过wget && 没有试成,可能没有加参数吧!
6 发表于 2006-11-27 23:29 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
UID 42173
性别 男
状态 离线
顶啊,我们教育网用户的福音啊!

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
7 发表于 2006-11-27 23:52 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
UID 42173
性别 男
状态 离线
忘记加分了,原创辛苦,狂顶

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
8 发表于 2006-11-28 00:28 ·  中国 甘肃 兰州 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
2个月前弄的自动设置代理的就因为没有法子验证而遗憾,现在呵呵~thanks
本帖最近评分记录 (共 2 条) 点击查看详情
评分人分数时间
snowbbbb -1 2006-11-28 03:47
无奈何 +2 2006-11-28 05:49
9 发表于 2006-11-28 00:41 ·  中国 江苏 苏州 联通
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
UID 60484
状态 离线
好东西啊。
下次是不是准备加入排序功能了?
10 发表于 2006-11-28 01:01 ·  中国 四川 成都 教育网
铂金会员
★★★★
积分 7,493
发帖 2,672
注册 2005-09-02 00:00
UID 42173
性别 男
状态 离线
在加入一个自动生成 pac 配置文件的~~哈哈

C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>"
11 发表于 2006-11-28 01:01 ·  中国 河南 郑州 荥阳市 联通
中级用户
★★
积分 439
发帖 170
注册 2006-01-09 20:29
UID 48707
状态 离线
GNU Wget 1.10.2, a non-interactive network retriever.
Usage: wget ... ... Mandatory arguments to long options are mandatory for short options too. Startup: -V, --version display the version of Wget and exit. -h, --help print this help. -b, --background go to background after startup. -e, --execute=COMMAND execute a `.wgetrc'-style command. Logging and input file: -o, --output-file=FILE log messages to FILE. -a, --append-output=FILE append messages to FILE. -d, --debug print lots of debugging information. -q, --quiet quiet (no output). -v, --verbose be verbose (this is the default). -nv, --no-verbose turn off verboseness, without being quiet. -i, --input-file=FILE download URLs found in FILE. -F, --force-html treat input file as HTML. -B, --base=URL prepends URL to relative links in -F -i file. Download: -t, --tries=NUMBER set number of retries to NUMBER (0 unlimits). --retry-connrefused retry even if connection is refused. -O, --output-document=FILE write documents to FILE. -nc, --no-clobber skip downloads that would download to existing files. -c, --continue resume getting a partially-downloaded file. --progress=TYPE select progress gauge type. -N, --timestamping don't re-retrieve files unless newer than local. -S, --server-response print server response. --spider don't download anything. -T, --timeout=SECONDS set all timeout values to SECONDS. --dns-timeout=SECS set the DNS lookup timeout to SECS. --connect-timeout=SECS set the connect timeout to SECS. --read-timeout=SECS set the read timeout to SECS. -w, --wait=SECONDS wait SECONDS between retrievals. --waitretry=SECONDS wait 1..SECONDS between retries of a retrieval. --random-wait wait from 0...2*WAIT secs between retrievals. -Y, --proxy explicitly turn on proxy. --no-proxy explicitly turn off proxy. -Q, --quota=NUMBER set retrieval quota to NUMBER. --bind-address=ADDRESS bind to ADDRESS (hostname or IP) on local host. --limit-rate=RATE limit download rate to RATE. --no-dns-cache disable caching DNS lookups. --restrict-file-names=OS restrict chars in file names to ones OS allows. --user=USER set both ftp and http user to USER. --password=PASS set both ftp and http password to PASS. Directories: -nd, --no-directories don't create directories. -x, --force-directories force creation of directories. -nH, --no-host-directories don't create host directories. --protocol-directories use protocol name in directories. -P, --directory-prefix=PREFIX save files to PREFIX/... --cut-dirs=NUMBER ignore NUMBER remote directory components. HTTP options: --http-user=USER set http user to USER. --http-password=PASS set http password to PASS. --no-cache disallow server-cached data. -E, --html-extension save HTML documents with `.html' extension. --ignore-length ignore `Content-Length' header field. --header=STRING insert STRING among the headers. --proxy-user=USER set USER as proxy username. --proxy-password=PASS set PASS as proxy password. --referer=URL include `Referer: URL' header in HTTP request. --save-headers save the HTTP headers to file. -U, --user-agent=AGENT identify as AGENT instead of Wget/VERSION. --no-http-keep-alive disable HTTP keep-alive (persistent connections). --no-cookies don't use cookies. --load-cookies=FILE load cookies from FILE before session. --save-cookies=FILE save cookies to FILE after session. --keep-session-cookies load and save session (non-permanent) cookies. --post-data=STRING use the POST method; send STRING as the data. --post-file=FILE use the POST method; send contents of FILE. HTTPS (SSL/TLS) options: --secure-protocol=PR choose secure protocol, one of auto, SSLv2, SSLv3, and TLSv1. --no-check-certificate don't validate the server's certificate. --certificate=FILE client certificate file. --certificate-type=TYPE client certificate type, PEM or DER. --private-key=FILE private key file. --private-key-type=TYPE private key type, PEM or DER. --ca-certificate=FILE file with the bundle of CA's. --ca-directory=DIR directory where hash list of CA's is stored. --random-file=FILE file with random data for seeding the SSL PRNG. --egd-file=FILE file naming the EGD socket with random data. FTP options: --ftp-user=USER set ftp user to USER. --ftp-password=PASS set ftp password to PASS. --no-remove-listing don't remove `.listing' files. --no-glob turn off FTP file name globbing. --no-passive-ftp disable the "passive" transfer mode. --retr-symlinks when recursing, get linked-to files (not dir). --preserve-permissions preserve remote file permissions. Recursive download: -r, --recursive specify recursive download. -l, --level=NUMBER maximum recursion depth (inf or 0 for infinite). --delete-after delete files locally after downloading them. -k, --convert-links make links in downloaded HTML point to local files. -K, --backup-converted before converting file X, back up as X.orig. -m, --mirror shortcut for -N -r -l inf --no-remove-listing. -p, --page-requisites get all images, etc. needed to display HTML page. --strict-comments turn on strict (SGML) handling of HTML comments. Recursive accept/reject: -A, --accept=LIST comma-separated list of accepted extensions. -R, --reject=LIST comma-separated list of rejected extensions. -D, --domains=LIST comma-separated list of accepted domains. --exclude-domains=LIST comma-separated list of rejected domains. --follow-ftp follow FTP links from HTML documents. --follow-tags=LIST comma-separated list of followed HTML tags. --ignore-tags=LIST comma-separated list of ignored HTML tags. -H, --span-hosts go to foreign hosts when recursive. -L, --relative follow relative links only. -I, --include-directories=LIST list of allowed directories. -X, --exclude-directories=LIST list of excluded directories. -np, --no-parent don't ascend to the parent directory. Mail bug reports and suggestions to <bug-wget@gnu.org>.
12 发表于 2006-11-28 03:44 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线


下次是不是准备加入排序功能了?

  兄弟说的是以什么排序?

在加入一个自动生成 pac 配置文件的~~哈哈

  不懂pac文件的格式,请指点一下。。
13 发表于 2006-11-28 03:48 ·  中国 河南 信阳 潢川县 电信
初级用户
积分 118
发帖 42
注册 2006-09-14 21:58
UID 62590
状态 离线
先给vkill兄弟说声对不起~ 点着看的时候不小心点到那了 好奇之下看了看 结果扣了你一分
你也来扣我一分吧 或者哪天我见你发言的时候再给你加上一分
14 发表于 2006-11-28 04:32 ·  中国 江苏 苏州 联通
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
UID 60484
状态 离线
排序是指,用户指定一个网页要上,然后按连接这个网页的速度把可用代理显示出来。
15 发表于 2006-11-28 04:46 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
UID 63486
来自 河北廊坊
状态 离线
好啊!刚刚试过,很棒!给兄加分了。
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
论坛跳转: