检测设备是否在线

时间:2013-11-19 02:49:13

标签: batch-file ip

我创建了一个批处理文件,用于检查IP地址是否在线(在同一网络上)。我使用ping命令。该程序运行良好,但不幸的是,它们的设备IP地址变化很大,所以我必须重新查找IP地址,然后重新启动程序。我正在寻找一个简单的IP地址替代品,因为它不再有效。我还需要知道检测它是否在线的方法,假设我不能继续使用带有errorlevel的ping,或者使用带有errorlevel的tracert。我只需要确保地址不会改变。

编辑:我想我会使用mac地址,因为它没有改变,只是,我需要一种方法来检测mac地址是否在线,但不使用arp -a命令,因为它显示一个列表的mac地址,但不允许你单独输出。我希望这能做到一些。

2 个答案:

答案 0 :(得分:3)

在Windows中,您可以运行'arp -a'查看连接到计算机的所有设备。

此命令将列出每个设备的MAC和IP地址,因此您可以使用此输出在此列表中查找设备的更新IP地址。

在.bat脚本中,您可以解析变量

参考: ARP:http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/arp.mspx?mfr=true

在.bat脚本中解析文本:Parsing string in batch file

答案 1 :(得分:0)

替换IP的一个好主意是一旦知道就使用IP查找mac地址,并将其存储以用于进一步的ping。如果由于重新分配而不存在ip,则使用不会改变的MAC进行查找。

在linux中,

#Get the from local arp table
ipaddr=$(arp | grep 52:45:32:3E:B3:C9 | awk ' { print $1 } ')

此代码可以根据现有代码进行处理,以定期检查可用性。 请参阅:How to ping MAC adrress in linux