批量测试IP和域名联通性2

在前面批量测试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

你可能感兴趣的:(Bat,批量测试ip连通性,批量测试域名联通性,批量测试ip和域名连通性)