• 用批处理连续ping一个ip段


    今天写这个有一个原因,就是我家的网络用了一个无线电力猫做为无线网络扩展,但忘记了无线电力猫的IP,而且我家新路由器也看不到这个电力猫,也可能有一个原因。我原来用的是192.168.1.1的华为路由器,自然我就把这个无线电力猫设置成了192.168.1.X这样的IP,这几天我家换了普联的479路由器,IP段为192.168.0.X,所以在这里面“应该”是无法访问192.168.1.X设备的。但是事无绝对,原来的192.168.1.X的路由器接到这个新路由上以后,是可以正常上网的,只是接在华为路由下面的设备的IP段为192.168.1.X,上网什么的完全不耽误。而且那个电力猫接到这个479路由上以后,接到它下面的设备也可以直接上网,毫不影响,只不过不能登录到无线路由上去。技术真是进步的飞快,之前还属于要学习的技术,现在完全傻瓜式管理,倒是方便了普通用户,PNP当然是大家最需要的。

    闲话说完!

    其实只要把这个无线电力猫接到旧路由上,看一下应该就可以找得到,而且我之前明确记得华为路由上曾经看到过它,但今天我接到华为路由上以后,居然看不到有线设备。而且那个电力猫被东西挡住了,取不下来,就只能想办法PING它,得到IP后,再登进去,修改IP地址为192.168.0.X段,但是要找到它的IP可不容易。一个个ping?254个IP,可以是够烦的,于是又想起了DOS命令这个老而不衰的家伙,一定可以解决。

    上面还是闲话,下面是干货。

    DOS命令连续ping一个IP段:

    for 命令语法:FOR %variable IN (set) DO command [command-parameters]

    实例:for /L %D in (1,1,255) do ping 192.168.0.%D -n 1

    解释:

    for /L的作用是以增量形式从开始到结束生成一个数字序列。语法格式:

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

    • start:创建序列的开始位置;

    • step:创建序列时单步距离;

    • end:创建序列结束位置;

    在上面代码中就是从1开始到255,步进为1,挺好理解。

    %D为变量,后面的D可以为任何字母单词,但前后要一致,而且大小写敏感,在上例中代表循环的1-255的数字。

    for语句中in和do是必须有的,不多说,照抄就行了。

    do后面就是要执行的命令,此后为ping一个IP。

    -n 1为ping命令参数,表示ping一次。

    所以for /L %D in (1,1,255) do ping 192.168.0.%D -n 1运行后如下图:

     其实这样很乱,ping不通的对我来说没用,而且这样也不好看。于是后面加了一个过虑,命令变成这样了:

    for /L %D in (1,1,255) do ping 192.168.0.%D -n 1 | find "TTL=">nul && echo 192.168.0.%D通

     ping前面那个“|”是管道符,表示前面的结果作为后面命令的输入(相关|、 ||、 &、 &&用法见:dos命令连接符图文教程,符号&和&&和||组合语句,bat批处理脚本 - 哔哩哔哩

    find “TTL=”>nul表示在前面ping的结果里面找“TTL=”,找到结果为1,找不到为0,所以>nul即为找到。 &&表示前面命令执行成功则执行后面的命令,不成功不执行。这样执行后的画面就简单多了:

    但还是有很多无用 的干扰信息,所以在执行上面的命令之前用echo off就解决了。

    如图:

    这样就只剩下我们需要的内容了。但执行完后不要忘记再echo on,不然只有一个光标在那闪,了不知道命令执行完了没。所以上面完全的命令为:

    echo off

    for /L %D in (1,1,255) do ping 192.168.0.%D -n 1 | find "TTL=">nul && echo 192.168.0.%D OK!

    命令执行完成后再:echo on.

    如何把上面的命令做成批处理是这样,如下代码,%D前面要加一个%,批处理和DOS命令的变量写法不同,其它一样。

    1. @echo off
    2. cls
    3. for /L %%D in (1,1,255) do ping 192.168.0.%%D -n 1 | find "TTL=">nul && echo 192.168.0.%%D OK!
    4. @echo on

    如果输入到文件可改成:(DOS命令)

    for /L %D in (1,1,255) do ping 192.168.0.%D -n 1 | find "TTL=">nul && echo 192.168.0.%D>>ok.txt

     丰俭由人,自行选择。

    注:返回物理地址:

    for /L %D in (1,1,255) do ping 192.168.0.%D -n 1 | find "TTL=">nul && echo 192.168.0.%D通  && arp -a 192.168.0.%D

  • 相关阅读:
    11 | JpaRepository 如何自定义
    老卫带你学---leetcode刷题(399. 除法求值)
    乘方【NOIP 2022 普及组】
    Ubuntu 安装docker
    Vue项目实战之人力资源平台系统(十)图片上传和打印员工信息
    回溯法 n皇后
    【学习笔记】[EGOI2023] Bikes vs Cars
    米家小白智能摄像机 JTSXJ01CM 刷机教程
    别再张口闭口高并发海量数据了,Spring这些东西都会了吗?
    Centos系统上安装包(软件)时常用的命令wget、rpm、yum分别是什么意思和作用?
  • 原文地址:https://blog.csdn.net/kim5659/article/details/133868805