1. 開啟記事本->貼上以下這段程式碼
2.另存新檔->檔案名稱->一鍵網路健檢_老師版.bat
3.存檔類型->
程式碼
@echo off
setlocal EnableExtensions EnableDelayedExpansion
chcp 65001 >nul
title 一鍵網路健檢(老師版 v2)
set "NODE_IP=10.255.4.1"
set "TEST_DOMAIN=www.google.com"
set "TEST_DNS=8.8.8.8"
set "TEST_IP=8.8.8.8"
set "OK=✅"
set "WARN=⚠️"
set "BAD=❌"
goto :MAIN
:PINGCHECK
set "PING_OK=0"
ping -n 2 -w 800 %~1 >nul 2>nul
if %errorlevel%==0 set "PING_OK=1"
exit /b
:HTTPCHECK
set "HTTP_OK=0"
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"try { $r=Invoke-WebRequest -Uri 'https://www.google.com' -UseBasicParsing -TimeoutSec 8; if($r.StatusCode -ge 200 -and $r.StatusCode -lt 400){ exit 0 } else { exit 2 } } catch { exit 1 }" >nul 2>nul
if %errorlevel%==0 set "HTTP_OK=1"
exit /b
:DNSCHECK
set "DNS_OK=0"
for /f "delims=" %%A in ('nslookup %TEST_DOMAIN% %TEST_DNS% 2^>nul ^| findstr /i /c:"Name:" /c:"Addresses:" /c:"Address:"') do (
set "DNS_OK=1"
)
exit /b
:MAIN
cls
echo ===============================================
echo 一鍵網路健檢(老師版 v2)
echo 只要看 RESULT 結論就可以
echo ===============================================
echo 時間:%date% %time%
echo 校內節點:%NODE_IP%
echo ===============================================
echo(
set "IPV4="
set "GW="
for /f "tokens=2 delims=:" %%A in ('ipconfig ^| findstr /i "IPv4"') do (
if not defined IPV4 (
for /f "tokens=* delims= " %%B in ("%%A") do set "IPV4=%%B"
)
)
for /f "tokens=2 delims=:" %%A in ('ipconfig ^| findstr /i "Default Gateway"') do (
if not defined GW (
for /f "tokens=* delims= " %%B in ("%%A") do set "GW=%%B"
)
)
echo 【A. 本機資訊】
if defined IPV4 (
echo %OK% 本機 IPv4:%IPV4%
) else (
echo %BAD% 未取得 IPv4
)
if defined GW (
echo %OK% 預設閘道:%GW%
) else (
echo %BAD% 未取得預設閘道
)
echo(
echo 【B. 校內網路】
if defined GW (
call :PINGCHECK %GW%
if "!PING_OK!"=="1" (
echo %OK% 可連到校內閘道
set "GW_OK=1"
) else (
echo %BAD% 無法連到校內閘道
set "GW_OK=0"
)
) else (
echo %BAD% 略過檢查(因為沒有閘道)
set "GW_OK=0"
)
echo(
echo 【C. 校內節點 %NODE_IP%】
call :PINGCHECK %NODE_IP%
if "!PING_OK!"=="1" (
echo %OK% 節點有回應
set "NODE_OK=1"
) else (
echo %WARN% 節點無回應
set "NODE_OK=0"
)
echo(
echo 【D. DNS(Google DNS 8.8.8.8)】
if not defined IPV4 (
echo %BAD% 略過檢查(因為未取得 IPv4)
set "DNSR_OK=0"
) else if not defined GW (
echo %BAD% 略過檢查(因為未取得閘道)
set "DNSR_OK=0"
) else (
call :DNSCHECK
if "!DNS_OK!"=="1" (
echo %OK% 可透過 Google DNS 解析 %TEST_DOMAIN%
set "DNSR_OK=1"
) else (
echo %BAD% 無法透過 Google DNS 解析 %TEST_DOMAIN%
set "DNSR_OK=0"
)
)
echo(
echo 【E. 對外連線(8.8.8.8)】
if not defined IPV4 (
echo %BAD% 略過檢查(因為未取得 IPv4)
set "WAN_OK=0"
) else if not defined GW (
echo %BAD% 略過檢查(因為未取得閘道)
set "WAN_OK=0"
) else (
call :PINGCHECK %TEST_IP%
if "!PING_OK!"=="1" (
echo %OK% 可連到外網 IP %TEST_IP%
set "WAN_OK=1"
) else (
echo %WARN% 無法 ping 外網 IP(有些網路會擋 ping)
set "WAN_OK=0"
)
)
echo(
echo 【F. 網頁是否可開(HTTPS)】
if not defined IPV4 (
echo %BAD% 略過檢查(因為未取得 IPv4)
set "WEB_OK=0"
) else if not defined GW (
echo %BAD% 略過檢查(因為未取得閘道)
set "WEB_OK=0"
) else (
call :HTTPCHECK
if "!HTTP_OK!"=="1" (
echo %OK% 可開啟 Google 網頁
set "WEB_OK=1"
) else (
echo %BAD% 無法開啟 Google 網頁
set "WEB_OK=0"
)
)
echo(
echo ===============================================
echo 【RESULT 結論】
echo -----------------------------------------------
if not defined IPV4 (
echo %BAD% 目前電腦沒有取得網路位址
echo → 請先確認 Wi-Fi 是否已連線,或網路線是否插好
goto :ADVICE
)
if not defined GW (
echo %BAD% 目前沒有預設閘道,無法正常上網
echo → 請先重連 Wi-Fi,或更換網路孔位
goto :ADVICE
)
if "!GW_OK!"=="0" (
echo %BAD% 校內網路連線異常
echo → 可先重連網路,若仍失敗請通知資訊組
goto :ADVICE
)
if "!DNSR_OK!"=="0" (
echo %BAD% 網址解析異常(DNS 問題)
echo → 可能是 DNS 設定或校內網路服務異常
goto :ADVICE
)
if "!WEB_OK!"=="0" (
echo %BAD% 可連網,但網頁無法正常開啟
echo → 可能是防火牆、代理、憑證或外網異常
goto :ADVICE
)
echo %OK% 網路整體正常
echo → 校內網路、DNS、外網、網頁開啟都正常
:ADVICE
echo(
echo 【補充說明】
echo -----------------------------------------------
if "!NODE_OK!"=="0" (
echo - %WARN% 校內節點 %NODE_IP% 沒回應,可能是節點不回 ping 或不在同網段。
)
if "!WAN_OK!"=="0" if defined IPV4 if defined GW (
echo - %WARN% 外網 ping 不通,不一定代表不能上網,仍要以 HTTPS 測試為主。
)
echo ===============================================
echo(
pause