在前面批量测试IP和域名联通性-CSDN博客的基础上,由于IP和域名多样性,比如带端口号的192.168.1.17:17,实际上应该ping 192.168.1.17。如果封禁http://www.abc.com/a.exe,实际可ping www.abc.com。所以又完善了代码。
@echo off
setlocal enabledelayedexpansion
chcp 936
for /F %%A in (E:\封禁IP\ipall.txt) do (
set "filename=%%A"
:: 核心逻辑:将目标字符替换为空,若结果与原字符串不同则说明包含
if not "!filename!" =="!filename:http=!" (
echo %%A http类型url测试联通性
for /F "tokens=2* delims=/" %%B in ("%%A") do (
echo %%B 实际测试http子域名连通性
ping -n 1 %%B | findstr /I "时间= TTL= Time=" > nul
if errorlevel 1 (
echo %%A 不可联通>>E:\封禁IP\不通IP和域名.txt
) else (
echo %%A 可联通>>E:\封禁IP\联通IP和域名.txt
)
)
) else ( if not "!filename!" =="!filename::=!" (
for /F "delims=:" %%C in ("%%A") do (
echo %%A 端口类型测试联通性
echo %%C 实际测试主机联通性
ping -n 1 %%C | findstr /I "时间= TTL= Time=" > nul
if errorlevel 1 (
echo %%A 不可联通>>E:\封禁IP\不通IP和域名.txt
) else (
echo %%A 可联通>>E:\封禁IP\联通IP和域名.txt
)
)
) else (
echo %%A 测试联通性
ping -n 1 %%A | findstr /I "时间= TTL= Time=" > nul
if errorlevel 1 (
echo %%A 不可联通>>E:\封禁IP\不通IP和域名.txt
) else (
echo %%A 可联通>>E:\封禁IP\联通IP和域名.txt
)
)
)
)
pause