在Windows系统中跟踪IP地址

taitaiai 2008-11-04 05:19:56
加精



作为网管员,在我们解决Windows 操作系统的DHCP故障时,有时要找出某个地址范围内有哪些地址没有被使用。本人以前介绍过一种方法:打开命令提示窗口,在For…in…Do循环中调用ping命令。例如,为了找出在地址范围192.168.1.1 到 192.168.1.100有哪些地址没有被使用,可以使用这个命令:For /L %f in (1,1,100) Do Ping.exe -n 2 192.168.1.%f

该命令会报告指定范围内的所有IP地址,不管是在用的还是未用的,用户都不得不在命令行窗口中翻看大量的内容。其实,我们完全可以避免这些麻烦,只需建立一个批处理文件,要求它只返回那些未用的IP地址,然后再将命令的结果输入到一个文本文件中。下面介绍方法:

打开记事本,在窗口中输入如下的命令:

@Echo off
date /t > IPList.txt
time /t >> IPList.txt
echo =========== >> IPList.txt
For /L %%f in (1,1,100) Do Ping.exe -n 2 192.168.1.%%f | Find
"Request timed out." && echo 192.168.1.%%f Timed Out >>
IPList.txt && echo off
cls
Echo Finished!
@Echo on
Notepad.exe IPList.txt





将此文件存为IPTracker.bat,关闭记事本程序。

需要注意的是,在这个批处理文件中,整个的For…In…Do命令由几个被“&&”连接起来的命令组成。该命令以“For”开始,以“Off”结尾,而且整个命令必须在一行上。当然,如果用户要使用此方法的话,需要使用用户自己的IP地址来替换示例中的IP地址。

以后,如果用户要解决DHCP问题,可以在浏览器窗口中定位并双击IPTracker.bat文件,然后启动一个IP地址跟踪工具,这个批处理只查找那些未用的IP地址,并将结果存到记事本文件中。(在此例中,这个保存的批处理文件成为一个IP地址跟踪工具,它可以一次创建,反复使用。)

注意:此方法只适用于Windows XP Professional(专业版)
...全文
1529 69 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
69 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjlovewb 2008-11-13
  • 打赏
  • 举报
回复
@Echo off
date /t > IPList.txt
time /t >> IPList.txt
echo =========== >> IPList.txt
For /L %%f in (2,1,220) Do Ping.exe -n 2 10.0.170.%%Find
"Request timed out." && echo 10.0.170.%%f Timed Out >>
IPList.txt && echo off
cls
Echo Finished!
@Echo on
Notepad.exe IPList.txt

把代码改为这样 找出ip为10.0.170.2到10.0.170.220中没有使用的ip 但是在记事本中并没有列出没有使用的ip
我用的是局域网
lfclfclfc 2008-11-12
  • 打赏
  • 举报
回复
强悍 高人就是有想法
hzfurongmu 2008-11-12
  • 打赏
  • 举报
回复
那么这个正确的怎么写呢?请问?
是不是这样写了?
For /L %%f in (2,1,220) Do Ping.exe -n 2 10.0.170.%%f | Find
[Quote=引用 57 楼 hirro 的回复:]
引用 51 楼 xjlovewb 的回复:
很好 学习了
但是我在IP 为10.0.170.2到10.0.170.220

@Echo off
date /t > IPList.txt
time /t >> IPList.txt
echo =========== >> IPList.txt
For /L %%f in (170,2,220) Do Ping.exe -n 2 10.0.170.%%f | Find
"Request timed out." && echo 10.0.170.%%f Timed Out >>
IPList.txt && ech…
[/Quote]
参考:
使用迭代变量设置起始值 (start#) ,然后一步步执行一系列设置范围的值,直到该值超过设置的终止值 (end#)。/L 将通过对 start# 与 end# 进行比较,执行迭代变量。如果 start# 小于 end#,就会执行该命令。如果迭代变量超过 end#,则命令解释程序退出此循环。也可以使用负 step# 以递减数值的方式一步步执行此范围内的值。例如,(1,1,5) 生成顺序 1 2 3 4 5,而 (5,-1,1) 则生成顺序 (5 4 3 2 1)。语法是:

for /L {%% | %}variable in (start#,step#,end#) do command [CommandLineOptions]
wangxiwen1985 2008-11-12
  • 打赏
  • 举报
回复
谢谢分享!
学习了!
attain84 2008-11-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 suan_lai 的回复:]
看不懂,但是还是谢谢你
[/Quote]

同意
xkw365 2008-11-12
  • 打赏
  • 举报
回复
不用这么麻烦,在网上找个工具就可以了
yoga33 2008-11-12
  • 打赏
  • 举报
回复
批处理文件是个很有用的管理工具
不知道有没有这方面的资料
hirro 2008-11-11
  • 打赏
  • 举报
回复
[Quote=引用 51 楼 xjlovewb 的回复:]
很好  学习了
但是我在IP 为10.0.170.2到10.0.170.220

@Echo off
            date /t > IPList.txt
            time /t >> IPList.txt
            echo =========== >> IPList.txt
            For /L %%f in (170,2,220) Do Ping.exe -n 2 10.0.170.%%f | Find
            "Request timed out." && echo 10.0.170.%%f Timed Out >>
            IPList.txt && echo off
            cls
  …
[/Quote]
in括号内的错了
xiaoxiinlose 2008-11-11
  • 打赏
  • 举报
回复
mark!!
wjlsmail 2008-11-11
  • 打赏
  • 举报
回复
挺好的批处理。
giftfish 2008-11-11
  • 打赏
  • 举报
回复
先顶!
HAWKer 2008-11-11
  • 打赏
  • 举报
回复
高手啊
hlf48641715 2008-11-11
  • 打赏
  • 举报
回复
非常好!学习下
JYR520 2008-11-11
  • 打赏
  • 举报
回复
恩,不错,学习一下
sunion 2008-11-11
  • 打赏
  • 举报
回复
太复杂,看不懂。还市要顶楼主
sking2008 2008-11-11
  • 打赏
  • 举报
回复
实用,,先收了~!!!
liuxiyishi 2008-11-11
  • 打赏
  • 举报
回复
看不懂,但是还是谢谢你
liuxiyishi 2008-11-11
  • 打赏
  • 举报
回复
看不懂,但是还是谢谢你
lccy2008 2008-11-10
  • 打赏
  • 举报
回复
定下!
pengxuli 2008-11-10
  • 打赏
  • 举报
回复
学习下
加载更多回复(49)

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧