나는 임의로 시스템에 2 차 IP 주소를 할당하고 제거 할 수있는 스크립트를 작성하는 방법을 알아 내려고하고있다. 배치 스크립팅에 가장 익숙하기 때문에 가능한 경우 솔루션에 집중할 것입니다.
나는 사용자 입력을 받아서 새로운 IP 주소와 게이트웨이를 설정하는 방법을 알아 냈다.
아래의 배치 스크립트는 "LAN"이라는 인터페이스 용으로 작성되었습니다.
SET /P NEW-IPADDR="Enter IP:"
SET /P NEW-MASK="Enter Subnet Mask:"
SET /P NEW-GW="Enter Gateway:"
netsh interface ip add address name=LAN addr=%NEW-IPADDR% mask=%NEW-MASK% gateway=%NEW-GW% gwmetric=0
PAUSE
그만큼 PAUSE
가 삽입되어 오류를 확인할 수 있습니다. netsh
콘솔 창이 자동으로 종료되기 전에.
스크립트가 오류 검사 (빈 사용자 입력을 해결하거나 입력이 IP 주소의 패턴과 일치하는지 확인)를 위해 몇 가지 추가 명령문을 사용할 수 있다고 확신합니다. 하지만 지금 당장 생각해 보면 걱정되는 부분은 이전에 설정된 보조 IP 주소를 삭제하는 방법입니다.
한 가지 쉬운 옵션은 매번 모든 IP를 지우도록 스크립트를 설정하고 보조 IP를 요구하기 전에 기본 IP를 자동으로 설정하는 선을 미리 작성하는 것입니다. 이상적으로 스크립트를 보조 IP로만 작업하고 싶습니다.
옵션 2는 위의 스크립트의 마지막 줄을 다음과 같이 변경하는 것입니다.
ECHO "Secondary IP address configured. Press any key to remove secondary IP."
PAUSE
netsh interface ip delete address name=LAN addr=%NEW-IPADDR% gateway=%NEW-GW%
그러나이 작업을 수행하는 동안 스크립트가 비정상적으로 종료되지 않을 것이라고 신뢰해야합니다. PAUSE
. 정확히 당신이 정말로 의지 할 수있는 것이 아닙니다.
또 다른 옵션은 스크립트가 나중에 구성 할 보조 IP를 영구적으로 저장하여 나중에 값을 가져오고 해당 매개 변수로만 작업 할 수 있도록하는 것입니다. 값을 영구 저장 장치로 가져 오는 것은 쉽습니다 ( ECHO "%NEW-IPADDR%" > SecondaryIP.txt && ECHO "%NEW-MASK%" >> SecondaryIP.txt && ECHO "%NEW-GW%" >> SecondaryIP.txt
)하지만 지금은 두 가지 문제가 있습니다.
- 배치 스크립트에서 사용할 수있는 방식으로 해당 텍스트 파일에서 데이터를 가져 오는 방법을 모르겠습니다. (이것은 쉽게 고칠 수 있다고 확신합니다.)
- 이것은 스크립트가 보조 IP를 접촉하는 유일한 것임을 의지합니다. 스크립트가 정상적으로 종료하는 것보다 조금 더 신뢰할 만하지만 여전히 100 %는 아닙니다.
이상적인 옵션은 "보조 IP"가 아닌 "기본 IP"를 인식 할 수있는 스크립트입니다. 만 후자에 맞붙다. 이것을 할 수있는 방법이 있습니까?
타사 도구를 전혀 사용하지 않아도되는 표준 Windows XP 빌드 이상과 호환되는 방법이 필요합니다. PowerShell에 대해 더 많이 배우고 싶습니다.이 도구를 사용하는 시스템에 PowerShell이 설치되어 있습니다. 따라서 PowerShell 기반 솔루션도 환영합니다.