ECHO OFF set DNS1=8.8.8.8 set DNS2=8.8.4.4 set INTERFACE=Ethernet CLS :MENU ECHO. ECHO ............................................... ECHO PRESS 1 OR 2 to select your task, or 3 to EXIT. ECHO ............................................... ECHO. ECHO 1 - Set Static ip ECHO 2 - Obtain DNS Automatically ECHO 3 - EXIT ECHO. SET /P M=Type 1, 2, or 3 then press ENTER: IF %M%==1 GOTO NOTE IF %M%==2 GOTO CALC IF %M%==3 GOTO EOF :NOTE netsh int ipv4 set dns name="%INTERFACE%" static %DNS1% primary validate=no netsh int ipv4 add dns name="%INTERFACE%" %DNS2% index=2 ipconfig /flushdns GOTO MENU :CALC netsh interface ipv4 set dnsservers "%INTERFACE%" dhcp ipconfig /flushdns GOTO MENU
:: network-diagnose.bat
@echo off
setlocal EnableExtensions EnableDelayedExpansion
:: ------------------------------------------------------------
:: Network diagnostics
::
:: 1 = Engångstest:
:: - Hittar default gateway
:: - Ping gateway
:: - Ping externa IP-adresser
:: - Testar DNS
:: - Kör tracert/pathping
::
:: 2 = Kontinuerlig monitorering:
:: - Loggar gateway + internet tills du avbryter med Ctrl+C
::
:: Loggar sparas i samma katalog som scriptet.
:: ------------------------------------------------------------
set "TESTLOG=%~dp0network_test.txt"
set "MONITORLOG=%~dp0network_monitor.txt"
:: Externa kontrollmål. Två olika nät minskar risken
:: att vi drar slutsats från ett enskilt trasigt mål.
set "TARGET1=1.1.1.1"
set "TARGET2=8.8.8.8"
:MENU
cls
echo.
echo ===============================================
echo Network diagnostics
echo ===============================================
echo.
echo 1 - Run full diagnostic test
echo 2 - Start continuous ping monitor
echo 3 - Exit
echo.
set /p "CHOICE=Select 1, 2 or 3: "
if "%CHOICE%"=="1" goto DIAGNOSTIC
if "%CHOICE%"=="2" goto MONITOR
if "%CHOICE%"=="3" goto EOF
goto MENU
:GETGATEWAY
:: Hämta IPv4 default gateway från routingtabellen.
:: Den används för att skilja lokala problem från problem
:: längre ut hos operatören eller på Internet.
set "GATEWAY="
for /f "tokens=3" %%G in ('route print -4 ^| findstr /R /C:"^[ ]*0\.0\.0\.0[ ]*0\.0\.0\.0"') do (
if not defined GATEWAY set "GATEWAY=%%G"
)
exit /b
:DIAGNOSTIC
call :GETGATEWAY
echo ==== Network diagnostic ==== > "%TESTLOG%"
echo Started: %DATE% %TIME% >> "%TESTLOG%"
echo. >> "%TESTLOG%"
echo [Configuration] >> "%TESTLOG%"
ipconfig /all >> "%TESTLOG%"
echo. >> "%TESTLOG%"
if defined GATEWAY (
echo [Default gateway: %GATEWAY%] >> "%TESTLOG%"
ping -n 20 %GATEWAY% >> "%TESTLOG%"
) else (
echo [Could not determine default gateway] >> "%TESTLOG%"
)
echo. >> "%TESTLOG%"
echo [Cloudflare %TARGET1%] >> "%TESTLOG%"
ping -n 20 %TARGET1% >> "%TESTLOG%"
echo. >> "%TESTLOG%"
echo [Google %TARGET2%] >> "%TESTLOG%"
ping -n 20 %TARGET2% >> "%TESTLOG%"
echo. >> "%TESTLOG%"
echo [DNS through configured resolver] >> "%TESTLOG%"
nslookup google.com >> "%TESTLOG%" 2>&1
echo. >> "%TESTLOG%"
echo [DNS directly through Cloudflare] >> "%TESTLOG%"
nslookup google.com %TARGET1% >> "%TESTLOG%" 2>&1
echo. >> "%TESTLOG%"
echo [DNS directly through Google] >> "%TESTLOG%"
nslookup google.com %TARGET2% >> "%TESTLOG%" 2>&1
echo. >> "%TESTLOG%"
echo [Traceroute to Cloudflare] >> "%TESTLOG%"
tracert -d %TARGET1% >> "%TESTLOG%"
echo. >> "%TESTLOG%"
echo [Pathping to Cloudflare] >> "%TESTLOG%"
echo This part can take several minutes. >> "%TESTLOG%"
pathping -n %TARGET1% >> "%TESTLOG%"
echo. >> "%TESTLOG%"
echo Finished: %DATE% %TIME% >> "%TESTLOG%"
echo.
echo Diagnostic complete.
echo Log saved to:
echo %TESTLOG%
echo.
pause
goto MENU
:MONITOR
call :GETGATEWAY
echo.
echo Continuous monitor started.
echo Stop with Ctrl+C.
echo.
echo Logging to:
echo %MONITORLOG%
echo.
echo ==== Monitor started %DATE% %TIME% ==== >> "%MONITORLOG%"
:MONITORLOOP
:: Varje varv testar både den lokala gatewayen och Internet.
::
:: Om gatewayen spikar samtidigt som Internet:
:: misstänk dator, kabel, Wi-Fi, NIC eller router.
::
:: Om gatewayen är stabil men Internet spikar:
:: misstänk operatör, routing eller upstream.
::
:: Om båda är stabila medan ett specifikt program tappar
:: anslutningen är problemet sannolikt högre upp i stacken.
echo. >> "%MONITORLOG%"
echo ==== %DATE% %TIME% ==== >> "%MONITORLOG%"
if defined GATEWAY (
echo [Gateway %GATEWAY%] >> "%MONITORLOG%"
ping -n 5 -w 2000 %GATEWAY% >> "%MONITORLOG%"
)
echo [Cloudflare %TARGET1%] >> "%MONITORLOG%"
ping -n 5 -w 2000 %TARGET1% >> "%MONITORLOG%"
echo [Google %TARGET2%] >> "%MONITORLOG%"
ping -n 5 -w 2000 %TARGET2% >> "%MONITORLOG%"
:: Vänta fem sekunder före nästa mätning.
timeout /t 5 /nobreak >nul
goto MONITORLOOP
:EOF
endlocal
exit /b
ping 1.1.1.1 -f -l 1472
ping 1.1.1.1 -f -l 1464 ping 1.1.1.1 -f -l 1452 ping 1.1.1.1 -f -l 1400
Du måste vara medlem för att kunna kommentera