beauty in struggle

Windows에서 네트워크 주소(IP, Subnet, ...) 바꾸는 batch file 본문

After-work/batch

Windows에서 네트워크 주소(IP, Subnet, ...) 바꾸는 batch file

dgdeus 2023. 3. 24. 10:30
728x90
SMALL

업무를 하다가 IP를 바꿔야 하는 경우가 있는데,

마우스로 클릭클릭 하기 너무 귀찮아서 batch 파일실행으로 대체했다.

 

네트워크 주소를 A 또는 B를 오고가야하는 상황일 때,

아래의 batch 파일을 생성 및 실행해서 간단히 네트워크 주소를 변경할 수 있다.

 

@echo off
echo setip.bat executed


set NAME="YOUR_NETWORK_NAME"

set A_IP=xxx.xxx.xxx.xxx
set A_Subnet=xxx.xxx.xxx.xxx
set A_Gateway=xxx.xxx.xxx.xxx

set B_IP=xxx.xxx.xxx.xxx
set B_Subnet=xxx.xxx.xxx.xxx
set B_Gateway=xxx.xxx.xxx.xxx
set B_DNS=xxx.xxx.xxx.xxx

if "%1"=="" (
	echo - Failed to change
	echo -- Usage: setip.bat A or setip.bat B
	exit /b 1
)

if "%1"=="A" (
	echo - Changing network address to A
	netsh interface ip set address name=%NAME% static %A_IP% %A_Subnet% %A_Gateway% 1
	netsh interface ip delete dnsservers name=%NAME% all > nul
)

if "%1"=="B" (
	echo - Changing network address to B
	netsh interface ip set address name=%NAME% static %B_IP% %B_Subnet% %B_Gateway% 1
	netsh interface ip set dns name=%NAME% static %B_DNS% > nul
)

echo setip.bat finished
pause

 

이 batch 파일은 admin 권한이 필요

>> cmd 창을 admin 권한으로 실행해서 batch 파일 실행

     (Win+R -> cmd -> Ctrl+Shift+Enter으로 cmd admin으로 실행가능)

>> OR batch 파일에 admin 권한을 얻는 코드 추가해서 사용가능

>> OR cmd를 항상 admin으로 실행되게 권한설정

>> ...

 

 

입력 argument(A or B)에 따라 다른 네트워크 주소로 설정

>> if "%1" == "" (~~~)

 

 

gateway를 사용하는 경우에는 netsh interface ip set address ~~ 명령어 마지막에 1을 적어준다.

>> netsh interface ip set address name=%NAME% static %A_IP% %A_Subnet% %A_Gateway% 1

>> gwmetric=1에 해당하는 옵션으로 자세한 내용은 netsh interface ip set 명령어 메뉴얼 참조

 

 

DNS를 사용하지 않는 경우에는 DNS 주소를 삭제해준다.

(안 그러면 이전 DNS 주소가 그대로 남아있어 네트워크 잘못된 주소로 설정됨)

>> netsh interface ip delete dnsservers name=%NAME% all > nul

>> 마지막에 > nul을 해준이유는 DNS 설정 관련해서 발생하는 warning을 무시하려고

 

 

 

 

 

728x90
LIST
Comments