window 批量ping局域网下的前台电脑ip并保存结果
时间: 2023-12-20 11:06:24 浏览: 222
以下是一个简单的 Windows 批处理脚本,可以批量 ping 局域网中的前台电脑 IP 地址,并将结果保存到一个文本文件中:
```
@echo off
setlocal enabledelayedexpansion
set ip_range=192.168.1.
set start_ip=1
set end_ip=255
set result_file=result.txt
echo. > %result_file%
for /l %%i in (%start_ip%, 1, %end_ip%) do (
set ip=%ip_range%%%i
ping -n 1 -w 1000 !ip! | find "TTL=" > nul
if errorlevel 1 (
echo !ip! is not reachable >> %result_file%
) else (
echo !ip! is reachable >> %result_file%
)
)
echo All done!
```
解释:
1. `setlocal enabledelayedexpansion` 允许在 for 循环中使用 `!ip!` 变量。
2. `set ip_range=192.168.1.` 定义了 IP 地址的前三段。
3. `set start_ip=1` 和 `set end_ip=255` 定义了要扫描的 IP 范围。
4. `set result_file=result.txt` 定义了保存结果的文件名。
5. `echo. > %result_file%` 创建一个空的结果文件。
6. `for /l %%i in (%start_ip%, 1, %end_ip%) do (...)` 循环扫描 IP 地址。
7. `set ip=%ip_range%%%i` 构建完整的 IP 地址。
8. `ping -n 1 -w 1000 !ip! | find "TTL=" > nul` 执行 ping 命令,只发送一次请求,并等待 1 秒钟,然后查找是否有 "TTL=" 字符串。如果没有找到,则说明该 IP 地址不可达。
9. `if errorlevel 1 (...) else (...)` 检查 ping 命令的返回值,如果是大于等于 1,则说明该 IP 地址不可达,否则说明可达。
10. `echo !ip! is not reachable >> %result_file%` 将不可达的 IP 地址写入结果文件。
11. `echo !ip! is reachable >> %result_file%` 将可达的 IP 地址写入结果文件。
12. `echo All done!` 输出提示信息,表示扫描完成。
阅读全文