如何拼局域网所有ip_在windows命令行批量ping局域网内IP

在cmd命令行运行如下命令即可:

for /L %i in (10,1,80) do ping -n 1 -w 60 172.24.240.%i | find “回复” >>pingall.txt

这一条命令是ping局域网内地址范围在172.24.240.10~172.24.240.80的所有主机。ping的结果会输出到执行命令的目录里面的pingAll.txt文件。

注意:运行结果是追加到pingAll.txt文件的,不会新建立pingAll.txt文件。

运行样例如下:

本样例ping局域网内IP地址段:172.24.240.10~172.24.240.15的所有主机。运行过程和结果如下图所示。

《如何拼局域网所有ip_在windows命令行批量ping局域网内IP》

运行结束后,会在D盘根目录生成pingAll.txt文件,文件内容如下:

《如何拼局域网所有ip_在windows命令行批量ping局域网内IP》

从运行结果看,172.24.240.14和172.24.240.15两个ip的主机ping不通。

下面详细解释上面的这条命令:

用到了for、ping和find命令,并且把运行的结果输出到文本。

for命令的详细说明

(这里删除了本文不用的那一部分说明)

C:\Users\most>for /?

对一组文件中的每一个文件执行某个特定命令。

FOR %variable IN (set) DO command [command-parameters]

%variable 指定一个单一字母可替换的参数。

(set) 指定一个或一组文件。可以使用通配符。

command 指定对每个文件执行的命令。

command-parameters

为特定命令指定参数或命令行开关。

在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable

而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.

如果启用命令扩展,则会支持下列 FOR 命令的其他格式:

……

FOR /L %variable IN (start,step,end) DO command [command-parameters]

该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5)将产生序列

1 2 3 4 5,(5,-1,1)将产生序列(5 4 3 2 1)

……

ping命令

《如何拼局域网所有ip_在windows命令行批量ping局域网内IP》

本文开头那条命令用到了ping命令,并且含有参数-n 1,表示只发送一个数据包.

另外,ping命令还加了-w 60  参数表示超时时间60ms。

find命令

C:\Users\most>find /?

在文件中搜索字符串。

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] “string” [[drive:][path]filename[ …]]

/V 显示所有未包含指定字符串的行。

/C 仅显示包含字符串的行数。

/N 显示行号。

/I 搜索字符串时忽略大小写。

/OFF[LINE] 不要跳过具有脱机属性集的文件。

“string” 指定要搜索的文本字符串。

[drive:][path]filename

指定要搜索的文件。

如果没有指定路径,FIND 将搜索在提示符处键入

的文本或者由另一命令产生的文本。

C:\Users\most>

本文开头那条命令里面的find指令搜索的范围是ping产生的文本。利用find搜索含有“回复”这两个字的字符串,并把搜索结果显示出来。

显示的搜索结果之所以被输出到文本文件,是因为用了”>>”符号。具体介绍看《将cmd中命令输出保存为TXT文本文件》

说的有点乱,其实就是想记一下笔记。

后来发现其实有现成工具可以做这个事情:

《如何拼局域网所有ip_在windows命令行批量ping局域网内IP》

    原文作者:吾与呜啦啦孰美
    原文地址: https://blog.csdn.net/weixin_34237362/article/details/112042934
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞