Board logo

标题: [网络连接] [己解决]批处理读取ip批量ping [打印本页]

作者: keshun    时间: 2011-6-25 19:59     标题: [己解决]批处理读取ip批量ping

本帖最后由 keshun 于 2011-6-25 21:38 编辑

请教高手,批处理自动读取a.txt的IP进行ping,对能ping通的IP输出到b.txt

a.txt内容
202.175.3.8
202.96.199.133
61.128.128.68
202.101.115.55
202.100.64.68
202.96.128.86
202.103.224.68
202.98.192.67
202.100.192.68
作者: batman    时间: 2011-6-25 20:01

楼主首先可以讲一下你这下做的意图何在吗?
作者: 601997526    时间: 2011-6-25 20:07

  1. for /f %%i in (a.txt) do (ping /n 1 %%i&&echo,%%i>>b.txt)
复制代码

作者: keshun    时间: 2011-6-25 20:15

本帖最后由 keshun 于 2011-6-25 20:18 编辑

我这边开始封路由,打不开网页,只能设置异地能ping通的DNS进行设置才能打网页。

网上一搜索,一大堆的DNS地址,用批量ping进行筛选
作者: keshun    时间: 2011-6-25 20:23

请教下,能不能把能ping的DNS,第一个ping值同时写入到b.txt
作者: Batcher    时间: 2011-6-25 20:27

4# keshun


试试Google DNS
8.8.8.8
8.8.4.4

还有OpenDNS
208.67.222.222
208.67.220.220
作者: Rasm    时间: 2011-6-25 20:40

楼主是黑客,哈哈,是黑阔
作者: keshun    时间: 2011-6-25 20:42

6# Batcher

刚ping过Google DNS,OpenDNS  延时300多还有丢包现象。

看来只能自己找ping值小的DNS,版主能否帮我编个代码,批量ping,把DNS与第一个ping值同时输出,方便我筛选。
作者: Batcher    时间: 2011-6-25 20:51

8# keshun


参考:批处理自动获取最快速的QQ服务器
http://bbs.bathome.net/thread-4193-1-1.html
作者: batman    时间: 2011-6-25 21:22

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f %%a in (a.txt) do (
  3.   for /f "tokens=5 delims==m" %%b in ('ping /n 1 %%a^|findstr "from"') do (
  4.     if not defined min (
  5.       set /a min=%%b
  6.       ) else (
  7.       if !min! gtr %%b set /a min=%%b&set "_!min!=%%a"
  8.     )
  9.   )
  10. )
  11. echo 经检测最适宜的dns为:!_%min%!
  12. pause>nul
复制代码

作者: CrLf    时间: 2011-6-25 22:45

本帖最后由 zm900612 于 2011-6-25 23:05 编辑

来一个高效的,并行的进程数量可调节,不过其实不是很准:
  1. @echo off&setlocal enabledelayedexpansion>nul 2>nul 3>nul 4>nul
  2. set /a 并行=32,等待=1000
  3. echo %time% >con
  4. for /f "delims=" %%a in (a.txt) do (
  5.     del /f "%temp%\*.$p"
  6.     set /a "n+=1","num+=1">"%temp%\%%a.$p"
  7.     title !num!: %%a
  8.     if !n! geq %并行% (
  9.          set n=0
  10.          for %%b in ("%temp%\*.$p") do set /a n+=1
  11.          if !n! gtr 0 cmd /c exit
  12.     )
  13.     start /b cmd /c "ping>"%temp%\%%a.$p" /n 1 /w %等待% %%a&&echo>>b.txt %%a"
  14. )
  15. echo 全部ping完
  16. echo %time% >con
  17. pause&exit
复制代码

作者: Hello123World    时间: 2011-6-27 12:59

  1. @echo off
  2. (for /f %%i in (a.txt) do ping %%i /n 1 && echo %%i)>b.txt
  3. start b.txt
复制代码





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