티스토리 뷰

반응형

 

 

 
@echo off

set DEFAULT_IP=192.168.100.
set NODE=
set MYIP=
set FOUND=0
set RETRIES=0
set MAX_RETRIES=2
set DEFAULT_CONTROLLER_IP=10.1.1.210
set CONTROLLER_IP=
set DEFAULT_NODE=2

:: Check administrator rights
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo Administrator privileges required. Please try again.
    powershell -Command "Start-Process cmd -ArgumentList '/c, %~dpnx0' -Verb runAs"
    exit /b
)

setlocal enabledelayedexpansion

:: Ask the user to confirm or change the Controller IP
set /p CONTROLLER_IP=Enter Controller IP (Default: %DEFAULT_CONTROLLER_IP%): 
if "%CONTROLLER_IP%"=="" (
    set CONTROLLER_IP=%DEFAULT_CONTROLLER_IP%
)

:: Output the Controller IP
echo Controller IP is set to: !CONTROLLER_IP!

:: Extract the subnet of the CONTROLLER_IP (e.g., 10.1.1)
for /f "tokens=1- 3 delims=." %%a in ("%CONTROLLER_IP%") do (
    set CONTROLLER_SUBNET=%%a.%%b.%%c
)

:: Check if any of my IP addresses match the Controller's subnet
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| findstr /c:"%CONTROLLER_SUBNET%" ^| findstr /c:"IPv4"') do (
    if "%%a" neq "" (
            set MYIP=%%a
            set FOUND=1
            echo Found matching IP: !MYIP!
            echo.
        )
    )
)

if %FOUND%==0 (
    echo No matching IP address found in the %CONTROLLER_SUBNET%.xxx range.
    echo.
    echo Listing current adapter names and IPv4 addresses:
    echo ------------------------------------------------- 
    
    ipconfig | findstr /r /c:"Ethernet"  /c:"IPv4"
    
    echo -------------------------------------------------
    choice /m "A matching IP address was found: !MYIP!. Do you want to continue?"
    if errorlevel 2 exit /b
        goto CONTINUE

    pause
)

:CONTINUE
:: Add new route data : drive via configured IP
echo Powerlink node number:
set /p NODE=Enter new node number (Default: %DEFAULT_NODE%): 
if "%NODE%"=="" (
    set NODE=%DEFAULT_NODE%
)

timeout /t 1
route add 192.168.100.0 mask 255.255.255.0 %CONTROLLER_IP%

:CHECK_ROUTE
:: Checking routes
route print 192.168.100.0 | find "%CONTROLLER_IP%" >nul 2>&1
if %errorlevel% equ 0 (
    echo Route configuration successful. The route for 192.168.100.0 via %CONTROLLER_IP% is set correctly.
) else (
    set /a RETRIES+=1
    if %RETRIES% leq %MAX_RETRIES% (
        echo Route configuration failed. Attempting retry %RETRIES%...
        route delete 192.168.100.0 >nul 2>&1
        route add 192.168.100.0 mask 255.255.255.0 %CONTROLLER_IP%
        goto CHECK_ROUTE
    ) else (
        echo Route configuration failed after %RETRIES% attempts. Please check your IP settings.
        pause
        exit /b
    )
)

:: Ping Check
echo Run a ping test on %DEFAULT_IP%%NODE%
ping %DEFAULT_IP%%NODE%

pause
반응형

'shellscript' 카테고리의 다른 글

SVG 파일 변환  (0) 2024.09.23
shellscrip 참조링크  (0) 2020.06.21
shellscript IP획득  (0) 2020.06.21
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함