얼마 전에 회사 선배가 IP를 한방에 변경할 수 있는 스크립트가 있으면 좋겠다고 하더군요. 왜냐하면 클라우드 서버를 운영하다 보니 한꺼번에 수십대의 VM을 만드는 경우가 있는데, IP를 일일이 설정하는 일이 여간 귀찮은게 아니기 때문입니다. 물론 스크립트로 하더라도 기본적으로 IP 입력은 해야 하지만, 나머지 Gateway랑 DNS는 배치파일에 미리 입력해두면 되므로 어느정도 편하게 처리할 수 있습니다.


우선 수동으로 커맨드를 날리는 경우 기본적으로 이렇게 하시면 됩니다.

예제)
netsh interface ip set address "로컬 영역 연결" static 192.168.0.10 255.255.255.0 192.168.0.1

여기서 static 뒤에는 순서대로 IP 주소, 서브넷 마스크, 기본 게이트웨이를 적어주시면 됩니다.

다음은 DNS를 설정해줘야 합니다.

예제)
netsh interface ip set dnsservers "로컬 영역 연결" static 168.126.63.1 primary


위 두가지 작업을 배치파일로 편하게 처리할 수 있도록 만들어 봤습니다.


@echo off

set SUBNET=255.255.255.0
set DNS=168.126.63.1

:SETIP
cls
netsh interface ip show interfaces
echo.
set /p NIC=설정하려는 장치의 색인 번호 :
set /p IP=IP Address   :
echo Subnet Mask   : %SUBNET%
for /f "tokens=1-4 delims=." %%a in ('echo %IP%') do set GATEWAY=%%a.%%b.%%c.1
echo Gateway    : %GATEWAY%
echo DNS Server   : %DNS%
echo.
netsh interface ip set address %NIC% static %IP% %SUBNET% %GATEWAY%
netsh interface ip set dnsservers %NIC% static %DNS% primary
echo 작업이 완료되었습니다. 창을 닫아주세요.
pause > nul
exit


위 파일을 받아서 메모장으로 열어 빨간색 부분만 수정해주시면 됩니다. 사실 서브넷의 경우 기본적으로 C클래스가 대부분일 테니 255.255.255.0 그대로 사용하시면 될 것이고, DNS는 회사에서 사용하는 DNS 서버로 수정해주시면 되겠습니다.

게이트웨이의 경우 제가 입력받는 IP에 따라서 앞 세자리는 같게 하고 마지막 한자리만 1로 설정하게 해두었습니다.



그런데 글을 올리고 생각해보니 이 배치파일은 별로인 것 같습니다. 그래도 혹시나 도움이 될까 싶어 올려봤습니다.