在前面批量測試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=" > nulif 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=" > nulif 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=" > nulif errorlevel 1 (echo %%A 不可聯通>>E:\封禁IP\不通IP和域名.txt) else (echo %%A 可聯通>>E:\封禁IP\聯通IP和域名.txt)))
)
pause