我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何实现批处理查看同一子网络下的所有IP在线情况

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何实现批处理查看同一子网络下的所有IP在线情况

本篇内容介绍了“如何实现批处理查看同一子网络下的所有IP在线情况”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

:::::::查看所有子网IP.bat:::::::@echo offtitle 查看所有子网IPset /a Online=0set /a Offline=0set /a Total=256set ExportFile=子网IP在线统计.txt:: 初始化在线IP与不在线IP的个数为零,共扫描256个IP,结果输出的文件名set StartTime=%time%:: 记录程序的开始时间for /f "delims=: tokens=2" %%i in ('ipconfig /all ^| find /i "IP Address"') do set IP=%%i:: 获得本机IP [注1]if "%IP%"=="" echo 未连接到网络 & pause & goto :EOFif "%IP%"==" 0.0.0.0" echo 未连接到网络 & pause & goto :EOF:: 当IP为空或 0.0.0.0 时,提示未连接并退出该程序for /f "delims=. tokens=1,2,3,4" %%i in ("%IP%") do (  set /a IP1=%%i  set /a IP2=%%j  set /a IP3=%%k  set /a IP4=%%l):: 以句点为分隔符,分别将IP的四个十进制数赋给四个变量set /a IP4=0echo 在线的IP:>%ExportFile%:: 初始化IP的第四个数值为零,并创建结果输出文件:RETRYping %IP1%.%IP2%.%IP3%.%IP4% -n 1 -w 200 -l 16>nul && set /a Online+=1 && echo %IP1%.%IP2%.%IP3%.%IP4%>>%ExportFile% || set /a Offline+=1:: ping 目标IP [注2]set /p =[将本文底部评论4中的退格符替换到此处]set /a Scanned=%Online%+%Offline%set /a Progress=(%Online%+%Offline%)*100/%Total%set /p =正在扫描:%Scanned%/%Total% 扫描进度:%Progress%%%:: 删除当前行的内容,并重新显示进度信息 [注3]set /a IP4+=1 if %IP4% lss %Total% goto :RETRY:: 当IP的第四个数值小于总数时,跳转回 :RETRY 处,重复执行直到全部 ping 完为止echo.echo.set EndTime=%time%:: 记录程序的结束时间set /a Seconds = %EndTime:~6,2% - %StartTime:~6,2%set /a Minutes = %EndTime:~3,2% - %StartTime:~3,2%if %Seconds% lss 0 set /a Seconds += 60 & set /a Minutes -= 1if %Minutes% lss 0 set /a Minutes += 60:: 计算时间差set /a Percent=%Online%*100/(%Online%+%Offline%):: 计算在线百分比echo 在线IP个数:  %Online%echo 不在线IP个数: %Offline%echo 在线百分比:  %Percent%%%echo 统计耗时:   %Minutes%分%Seconds%秒echo 统计日期:   %date% %time:~0,-3%echo.>>%ExportFile%echo 在线IP个数:  %Online%>>%ExportFile%echo 不在线IP个数: %Offline%>>%ExportFile%echo 在线百分比:  %Percent%%%>>%ExportFile%echo 统计耗时:   %Minutes%分%Seconds%秒>>%ExportFile%echo 统计日期:   %date% %time:~0,-3%>>%ExportFile%echo 记录已保存到文件"%ExportFile%"中::显示结果并将结果保存到文件中pause::::::::::::::::::::::::::::::::

注1. ipconfig 是内置于 Windows 的 TCP/IP 应用程序,用于显示本地计算机网络适配器的物理地址和IP地址等配制信息,这些信息一般用来检验手动配置的 TCP/IP 设置是否正确。当在网络中使用 DHCP 服务时, ipconfig 可以检测到计算机中分配到了什么IP地址,是否配置正确,并且可以释放,重新获取IP地址。这些信息对于网络测试和故障排除都有重要的作用。[3]
更详细的说明请参阅 ipconfig/? 。ipconfig /all ,参数 /all 表示查看详细的网络配置。命令 ipconfig /all ^| find /i "IP Address" 表示在 'ipconfig /all 的结果中,以 "IP Address" 为查找对象,进行搜索(其结果类似于:IP Address. . . . . . . . . . . . : 10.30.11.51 )。

而整条命令中的 for 语句,则表示在上述结果中,以冒号为间隔(delims=:),查找第2个字串(tokens=2)。很明显,所找到的结果就是自己电脑当前的IP地址了(如果您只有一快网卡或是只启用了一个网卡的话。显然,对于多个网卡会显示出多个IP的情况,我并没有考虑的太全面)。[关于 for 更详细请参阅 4.2.4 小节]

另外,注意到在 ipconfig /all ^| find /i "IP Address" 中有一个转义字符 ^ ,它的作用是让后面的管道命令 | 生效,而不是让程序把 | 误解为 for 语句里参数的一部分。

注2. ping 其实才是本批处理的核心部分。命令 ping 的主要作用是通过发送数据包并接收应答信息来检测两台计算机之间的网络是否连通。比如我可以输入 ping 10.30.11.35 以便查看我是否能与我所在的局域网中IP为 10.30.11.35 的机器连通。如果我不懂批处理的话,也许我就得从 IP 10.30.11.1 开始,挨个地 ping 到 IP 10.30.11.255 ,才能达到我在本小节的最初目的。

在批处理中 ping 的3个参数 -n 1 -w 200 -l 16 分别表示:仅 ping 一遍[-n 1],等待200毫秒后按超时考虑[-w 200],发送16字节的数据[-l 16]。

另外,此命令行中同时用到了两个 && 和一个 || 的组合命令,我不得不承认这种复杂的逻辑关系会给您带来阅读上的困难。

注3. 这里使用了 set /p =显示内容

“如何实现批处理查看同一子网络下的所有IP在线情况”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何实现批处理查看同一子网络下的所有IP在线情况

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何实现批处理查看同一子网络下的所有IP在线情况

本篇内容介绍了“如何实现批处理查看同一子网络下的所有IP在线情况”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!:::::::查看所有子网IP
2023-06-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录