Table of contents

    이번에 알려드릴 내용은 고정IP와 유동IP를 자동으로 변경하는 것입니다.

     

    아마, 직장인 분들 중에서 노트북을 자주 사용하시는 분들이라면 IP를 변경할 일이 많을 것입니다.

     

    특히, 요새는 재택근무도 활성화 되서 더욱더 그렇죠.

     

    그런데 고정IP와 유동IP를 변경하는 작업은 간단하지만 매번 진행하기에는 다소 귀찮은 부분이 있습니다.

     

    변경 스텝만 하더라도 아래와 같은 절차가 필요하죠.

     

    네트워크 연결보기 -> 랜카드 상태 보기 -> 속성 -> 인터넷 프로토콜 버전 4(TCP/IPv4) -> 원하는 IP 설정

     

     

     

    별 것 아닌 것 같지만, 업무환경이 자주 바뀌는 분들은 이 작업이 생각보다 귀찮을 겁니다.

     

    그래서 원하는 IP를 미리 적어두면 간단하게 변경할 수 있는 프로그램인 Batch 파일 만드는 법을 알려드립니다.

     

    프로그램이라고 해봐야 이미 구성은 다 된 상태여서 메모장으로 파일을 열어 랜카드 이름과 IP만 수정하셔도 됩니다.

     

    그럼 지금부터 고정IP와 유동IP를 자동으로 변경하는 프로그램에 대해 설명을 시작하겠습니다.

     

    * 이해하기가 어렵다면 아래 설명에서 3번과 4번 내용만 참조하셔도 됩니다.

     

     

     

    1. 콘솔창 레이아웃 구성

    ::::::::::::::::::::::::::::::::::::::::::::::::::
    :: @echo off - 불필요한 출력문 비활성화
    :: color 3 - 배경화면 검은색, 글자색 파란색
    :: title Change Auto IP to Static IP - 프로그램 이름
    :: mode con cols=50 lines=15 - 콘솔창 크기 변경
    ::::::::::::::::::::::::::::::::::::::::::::::::::
    @echo off
    color 3
    title Change Auto IP to Static IP
    mode con cols=50 lines=15

    먼저, 콘솔창의 레이아웃을 구성해보겠습니다.

     

    일단, 불필요한 출력문들을 비활성화했습니다.

     

    배경화면은 검은색이고 글자는 파란색입니다.

     

    프로그램 이름은 Change Auto IP to Static IP로 해두었고, 기본 크기는 세로50, 가로15로 설정했습니다.

     

     

     

    2. Main 함수

    ::::::::::::::::::::::::::::::::::::::::::::::::::
    :: :Main - Main 함수
    :: cls - 출력화면 클리어
    :: echo - 출력문 
    :: set /p num=Select Auto or Static IP - num 변수에 키입력
    :: if "%num%"=="1" goto SetAutoIp - 1번 선택 시, SetAutoIp 함수 실행
    :: if "%num%"=="2" goto SetStaticIp - 2번 선택 시, SetStaticIp 함수 실행
    ::::::::::::::::::::::::::::::::::::::::::::::::::
    :Main
    cls
    echo.
    echo ********************
    echo *                  *
    echo *   1. Auto IP     *
    echo *                  *
    echo *   2. Static IP   *
    echo *                  *
    echo ********************
    echo.
    set /p no=Select Auto or Static IP - 
    if "%no%"=="1" goto SetAutoIp
    if "%no%"=="2" goto SetStaticIp

    Main함수는 전체 코드의 순차상 처음으로 실행되는 부분입니다.

     

    설명에 대한 내용은 출력문으로 출력하고 no라는 변수에 숫자를 입력 받습니다.

     

    1을 선택하면, SetAutoIp 함수를 실행하고, 2를 선택하면 SetStaticIp 함수를 실행합니다.

     

     

     

    3. SetAutoIp 함수

    ::::::::::::::::::::::::::::::::::::::::::::::::::
    :: :SetAutoIp - SetAutoIp 함수
    :: netsh -c int ip set address name="Wi-Fi" source=dhcp - Wi-Fi 속성, 자동으로 IP 주소 받기 선택
    :: netsh -c int ip set dns name="Wi-Fi" source=dhcp - Wi-Fi 속성, 자동으로 DNS 서버 주소 받기 선택
    ::::::::::::::::::::::::::::::::::::::::::::::::::
    :SetAutoIp
    netsh -c int ip set address name="Wi-Fi" source=dhcp
    netsh -c int ip set dns name="Wi-Fi" source=dhcp
    goto Result

     

    Main 함수에서 1번 또는 2번을 입력하면 SetAutoIp 함수와 SetStaticIp 함수를 실행하도록 했습니다.

     

    그 중 SetAutoIp 함수는 Wi-Fi라느 랜카드를 자동 IP 할당으로 변경하는 내용입니다.

     

    조금더 부연설명을 하자면, 코드에서 Wi-Fi는 아래 그림의 왼쪽 그림과 같이, Wi-Fi라고 명명된 랜카드를 의미합니다.

     

    그리고 source=dhcp는 아래 그림의 오른쪽 그림의 상태를 의미합니다.

     

    즉, 프로그램을 실해애서 1번을 입력하면 저 상태가 된다는 의미입니다.

     

     

     

    4. SetStaticIp 함수

    ::::::::::::::::::::::::::::::::::::::::::::::::::
    :: :SetStaticIp - SetStaticIp 함수
    :: netsh -c int ip set address name="Wi-Fi" source=static addr=192.168.0.1 mask=255.255.255.0 gateway=192.168.0.2 gwmetric=0
    :: - Wi-Fi 속성, 수동으로 IP 주소 받기 선택, IP주소, 서브넷 마스크, 기본게이트웨이 설정
    ::
    :: netsh -c int ip set dns name="Wi-Fi" source=static addr=192.168.0.3 register=PRIMARY
    :: - Wi-Fi 속성, 수동으로 DNS 주소 받기 선택, 기본 설정 DNS 서버
    ::
    :: netsh -c int ip add dns name="Wi-Fi" addr=192.168.0.4 index=2
    :: - Wi-Fi 속성, 수동으로 DNS 주소 받기 선택, 보조 DNS 서버
    ::::::::::::::::::::::::::::::::::::::::::::::::::
    :SetStaticIp
    netsh -c int ip set address name="Wi-Fi" source=static addr=192.168.0.1 mask=255.255.255.0 gateway=192.168.0.2 gwmetric=0
    netsh -c int ip set dns name="Wi-Fi" source=static addr=192.168.0.3 register=PRIMARY
    netsh -c int ip add dns name="Wi-Fi" addr=192.168.0.4 index=2
    goto Result

     

    SetStaticIp 함수는 우리가 원하는 IP를 입력해주는 함수입니다.

     

    코드를 읽기 힘들다면, 아래 그림과 숫자를 비교하여 보세요.

     

    • 192.168.0.1 - IP 주소
    • 255.255.255.0 - 서브넷 마스크
    • 192.168.0.2. - 기본 게이트웨이
    • 192.168.0.3 - 기본 설정 DNS 서버
    • 192.168.0.4 - 보조 DNS 서버

     

    어떠신가요? 어떤 부분을 수정해야 할지 쉽지 않나요?

     

     

    5. Result 함수

    ::::::::::::::::::::::::::::::::::::::::::::::::::
    :: :Result - Result 함수
    :: pause > nul - 프로그램 흐름 멈춤, 키 입력 시 해제
    ::::::::::::::::::::::::::::::::::::::::::::::::::
    :Result
    cls
    echo.
    echo **********************************************
    echo *                                            *
    echo *   Setting is Completed.                    *
    echo *                                            *
    echo *   If you want to go mian, press any key.   *
    echo *                                            *
    echo **********************************************
    echo.
    pause > nul
    goto Main

     

    마지막은 Result 함수입니다.

     

    IP를 변경하는 과정과는 무관한 내용이고, 다시 Main함수로 돌아가는 역할을 합니다.

     

    아무키나 입력하시면, 다시 처음으로 돌아가죠.

     

     

    6. 전체코드

    ::::::::::::::::::::::::::::::::::::::::::::::::::
    :: @echo off - 불필요한 출력문 비활성화
    :: color 3 - 배경화면 검은색, 글자색 파란색
    :: title Change Auto IP to Static IP - 프로그램 이름
    :: mode con cols=50 lines=15 - 콘솔창 크기 변경
    ::::::::::::::::::::::::::::::::::::::::::::::::::
    @echo off
    color 3
    title Change Auto IP to Static IP
    mode con cols=50 lines=15
    
    ::::::::::::::::::::::::::::::::::::::::::::::::::
    :: :Main - Main 함수
    :: cls - 출력화면 클리어
    :: echo - 출력문 
    :: set /p num=Select Auto or Static IP - num 변수에 키입력
    :: if "%num%"=="1" goto SetAutoIp - 1번 선택 시, SetAutoIp 함수 실행
    :: if "%num%"=="2" goto SetStaticIp - 2번 선택 시, SetStaticIp 함수 실행
    ::::::::::::::::::::::::::::::::::::::::::::::::::
    :Main
    cls
    echo.
    echo ********************
    echo *                  *
    echo *   1. Auto IP     *
    echo *                  *
    echo *   2. Static IP   *
    echo *                  *
    echo ********************
    echo.
    set /p no=Select Auto or Static IP - 
    if "%no%"=="1" goto SetAutoIp
    if "%no%"=="2" goto SetStaticIp
    
    ::::::::::::::::::::::::::::::::::::::::::::::::::
    :: :SetAutoIp - SetAutoIp 함수
    :: netsh -c int ip set address name="Wi-Fi" source=dhcp - Wi-Fi 속성, 자동으로 IP 주소 받기 선택
    :: netsh -c int ip set dns name="Wi-Fi" source=dhcp - Wi-Fi 속성, 자동으로 DNS 서버 주소 받기 선택
    ::::::::::::::::::::::::::::::::::::::::::::::::::
    :SetAutoIp
    netsh -c int ip set address name="이더넷" source=dhcp
    netsh -c int ip set dns name="이더넷" source=dhcp
    goto Result
    
    ::::::::::::::::::::::::::::::::::::::::::::::::::
    :: :SetStaticIp - SetStaticIp 함수
    :: netsh -c int ip set address name="Wi-Fi" source=static addr=192.168.0.1 mask=255.255.255.0 gateway=192.168.0.2 gwmetric=0
    :: - Wi-Fi 속성, 수동으로 IP 주소 받기 선택, IP주소, 서브넷 마스크, 기본게이트웨이 설정
    ::
    :: netsh -c int ip set dns name="Wi-Fi" source=static addr=192.168.0.3 register=PRIMARY
    :: - Wi-Fi 속성, 수동으로 DNS 주소 받기 선택, 기본 설정 DNS 서버
    ::
    :: netsh -c int ip add dns name="Wi-Fi" addr=192.168.0.4 index=2
    :: - Wi-Fi 속성, 수동으로 DNS 주소 받기 선택, 보조 DNS 서버
    ::::::::::::::::::::::::::::::::::::::::::::::::::
    :SetStaticIp
    netsh -c int ip set address name="이더넷" source=static addr=192.168.0.1 mask=255.255.255.0 gateway=192.168.0.2 gwmetric=0
    netsh -c int ip set dns name="이더넷" source=static addr=192.168.0.3 register=PRIMARY
    netsh -c int ip add dns name="이더넷" addr=192.168.0.4 index=2
    goto Result
    
    ::::::::::::::::::::::::::::::::::::::::::::::::::
    :: :Result - Result 함수
    :: pause > nul - 프로그램 흐름 멈춤, 키 입력 시 해제
    ::::::::::::::::::::::::::::::::::::::::::::::::::
    :Result
    cls
    echo.
    echo **********************************************
    echo *                                            *
    echo *   Setting is Completed.                    *
    echo *                                            *
    echo *   If you want to go mian, press any key.   *
    echo *                                            *
    echo **********************************************
    echo.
    pause > nul
    goto Main

     

     

    7. 첨부파일

    Change Auto IP to Static IP.bat
    0.00MB

     

    첨부파일을 메모장으로 열어서 IP를 수정하시면 됩니다.