Board logo

标题: [网络连接] [已处理]如何用批处理实现网站连通测试? [打印本页]

作者: fanfande    时间: 2010-8-18 18:10     标题: [已处理]如何用批处理实现网站连通测试?

A.txt  放置用来被测试的网址,条目无限制,形如这样的格式:

www.sohu.com
www.27cm.cn
www.163.com
www.1car.sh.cn
www.sh-rentcar.cn
www.dayangui.com/
www.99sui.com.cn/
www.qq.com
www.bathome.net
类似这样的一行一个网址......



用批处理来测试每个网站是否能连通,并将结果记录在B.txt  形如这样的格式:

www.sohu.com       可以正常打开浏览网页,时间81ms
www.27cm.cn 可以正常打开浏览网页,时间81ms
www.163.com 该网站打不开
www.1car.sh.cn    可以正常打开浏览网页,时间81ms
www.sh-rentcar.cn  该网站打不开
www.dayangui.com/  该网站打不开
www.99sui.com.cn/ 可以正常打开浏览网页,时间81ms
www.qq.com 该可以打不开
www.bathome.net 可以正常打开浏览网页,时间81ms


这么的81ms就是我们平时ping的时候获得一个数据!

以前有个群ping 的bat忘记了.所以再来问一下!谢谢
有不同建议意见给我留言我晚上一直在线!已经

[ 本帖最后由 fanfande 于 2010-8-25 12:25 编辑 ]
作者: fanfande    时间: 2010-8-18 23:42

请问  还有人在吗?
作者: fanfande    时间: 2010-8-19 16:48

版主,在吗?2天的贴了

帖子哪里有问题吗
作者: hfg1977    时间: 2010-8-19 17:40

LZ这样做并没有实际意义的:
瞧你的A.txt  ,有的指定 http 协议 有的没指定,

1.指定 http 协议的默认按 http 协议访问80接口,
纯粹的P无法完成, 只有使用IE或curl之类来访问了.
是否可以打开还是可以判断的,至于用了x秒就没办法准确计算了.
所以这一项没法完成.

2. 未指定协议的网址就更复杂了.
要扫描主机的所有端口及开放的协议. 这是典型的黑客行为.
在这种情况下LZ所说的"打开"我就很难理解了.

3. 我们不干违法的事 (主要事技术还不过关)

哎 对楼主爱莫能助呀.
作者: fanfande    时间: 2010-8-19 18:10

hfg1977
你肯定是误解我意思了!

我就是单纯的ping网站是否能打得开

我们平时     "运行"→cmd→ping www.sohu.com -t
不都是有个time=81ms ttl=53 什么数据的吗

我只是不想在ie里面挨个打开网址来获得网站是否能正常打开!仅此而已! 不是黑客!
没那个闲工夫做坏事 ,哈哈
作者: hfg1977    时间: 2010-8-19 18:48

靠 我以为又遇到坏淫了嘞.
那你的a.txt只写主机名就可以了. 不要加 "/"
  1. @echo off
  2. setlocal enabledelayedexpansion&cls
  3. for /f "tokens=* usebackq delims=" %%i in ("a.txt") do (
  4. set "_ms="
  5. for /f "tokens=6 delims== " %%a in ('ping/n 2 /w 1000 %%i^|findstr "Average"') do set "_ms=%%a"
  6. if "!_ms!"=="" (echo %%i 不能打开) else (echo %%i 可以打开 !_ms!)
  7. )>>b.txt
复制代码

作者: fanfande    时间: 2010-8-19 23:31

哪有那么多坏人啊!哈哈

俺们都是东北人
作者: fanfande    时间: 2010-8-19 23:42

hfg1977
感激你啊~

你给的基本测试是成功的!
我有个建议,就是每次b.txt 是覆盖重写,而不是续写

目前运行一次bat,就会在下面多出来很多!

所以希望那个存放结果的b.txt 是完全覆盖重写,而不是续写!
作者: hfg1977    时间: 2010-8-19 23:53

@echo off
setlocal enabledelayedexpansion&cls
cd.>b.txt
...........................
加一行就行了呀,完全覆盖重写.

我是来灌水的.
作者: fanfande    时间: 2010-8-20 00:17

hfg1977

3q,成功了

我衍生下这个问题好吗?

url.txt   同样是放置的网址,一行一个
形如:
http://whois.chinaz.com/www.qq.com
http://www.114best.com/ip/114.aspx?w=www.qq.com
........

写个bat让他逐条的在后台运行下该网址

这个是我收一个做s e o的人一个网址启发的,我想bat可以实现!
原网址在这里 http://www.lusongsong.com/tool/seo/

基本就是我这个思路,想用bat实现看看!
作者: hfg1977    时间: 2010-8-20 01:55

访问各个搜索网站倒是很简单呀,就不知道是否能提升排行.
  1. @echo off
  2. setlocal enabledelayedexpansion&cls
  3. path=%path%;%~d0\DOS\网络;%~d0\DOS\command\第三方命令行程序;%~d0\DOS\command;%~d0\DOS\源码;%~d0\DOS\系统备份
  4. ::==============================================================
  5. :start
  6. for /f "tokens=* usebackq delims=" %%a in ("url.txt") do (
  7. set/a count+=1&set/p =计数: !count!<nul
  8. start/b curl %%a>nul
  9. )
  10. echo.
复制代码
核心语句就一句:start/b curl %%a>nul
你也可以把网址括起来: start/b curl "%%a">nul
不使用 -o 参数 不产生临时文件
curl 本论坛有 第三方命令行程序 自己找找.

[ 本帖最后由 hfg1977 于 2010-8-20 02:02 编辑 ]
作者: fanfande    时间: 2010-8-20 09:48

hfg1977

你好
运行下来提示

计数:1 系统找不到curl
计数:2 系统找不到curl
计数:3 系统找不到curl
计数:4 系统找不到curl
计数:1 系统找不到curl

一直这样下去,且弹出 windows找不到curl 请确认文件名是否正确
========================================================================


另外那个群ping 的问题,有一个小插曲刚好一起讲一下!

存在一个情况,那就是:
ping的通,但是事实上网站打不开,浏览器里面  Internet Explorer 无法显示该网页
今天早上我试过了

那是不是思路要改一下
就是网站是否能正常打开,取ie浏览器 反馈回来的值呢?
ie浏览器返回以下值时候,确定网站是打不开的,这样避免了ping的通,而事实上打不开的情况
① Internet Explorer 无法显示该网页
② HTTP 500 内部服务器错误
③ 404错误

麻烦你帮我再想个法子...

作者: wangqi0077    时间: 2010-8-20 13:07

原帖由 hfg1977 于 2010-8-19 18:48 发表
靠 我以为又遇到坏淫了嘞.
那你的a.txt只写主机名就可以了. 不要加 "/"@echo off
setlocal enabledelayedexpansion&cls
for /f "tokens=* usebackq delims=" %%i in ("a.txt") do (
set "_ms="
for /f "tokens= ...



我测试的显示全是不通的..咋办
作者: wangqi0077    时间: 2010-8-20 13:55

我只能做到这样了..还是问了很多人的..不知道怎么把延时时间也加进去..
网址放1.TXT中.
  1. @echo off
  2. for /f %%i in (1.txt) do (
  3. ping %%i -n 3 >a.txt
  4. find "时间=" a.txt >nul && echo %%i 通的 || echo %%i 不通)
  5. pause
复制代码

作者: fanfande    时间: 2010-8-20 16:45

wangqi0077

我本来通的,为啥用你的测试下来 显示为不通呢
作者: hfg1977    时间: 2010-8-20 19:10

绕了半天又回到起点: 判断目标主机是否开了http协议及哪个端口开了http协议
很多主机使用http协议不是默认的80端口.

你可以用nmap或其他工具扫描目标端口,查看其否开了http协议及哪个端口开了http协议.
如果你只想查看80端口,curl就足够了.

不再回答该主题.
作者: fanfande    时间: 2010-8-22 00:46

回复楼上,你的运行下来也好像可以啊




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2