IP(세 번째 옥텟)로 네트워크 드라이브 매핑

IP(세 번째 옥텟)로 네트워크 드라이브 매핑

배치 스크립트를 통해 DHCP에서 할당한 IP를 사용하여 올바른 네트워크 드라이브(여러 드라이브)를 컴퓨터에 매핑하고 싶습니다.

따라서 컴퓨터가 연결되면 IP 192.168.1이 할당됩니다.1.10 DHCP를 통해 네트워크 드라이브를 192.168에 매핑해야 합니다.1.11.

컴퓨터가 IP 192.168을 얻는 경우.2.10 DHCP를 통해 네트워크 드라이브를 192.168에 매핑해야 합니다.2.11. 등등.

그래서 컴퓨터 IP의 세 번째 옥텟을 사용하여 올바른 네트워크 장치 IP를 할당하고 싶습니다. 네트워크 드라이브 IP는 고정되어 있습니다. 네트워크에서는 컴퓨터의 IP만 무작위(DHCP)입니다.

스크립트는 다음과 같이 보일 것입니다.

  1. IP 확인 --> ipconfig | findstr IPv4(또는 네트워크 인터페이스 ""Ethernet"?)
  2. IP를 4옥텟(또는 토큰?)으로 분할
  3. 세 번째 옥텟을 통해 특정 네트워크 드라이브(목록에서?)에 매핑 -> net use z: \PATH-NETWORK-SHARE\FOLDER-NAME

당신이 나를 도와줄 수 있기를 바랍니다!

미리 감사드립니다.

답변1

다음과 같이 시도해 볼 수 있습니다(각 호스트에 IP 주소가 하나만 있다고 가정).

@echo off
set address_begining=192.168
set host_octet=11
set ip_address_string="IPv4 Address"
REM Get IP Address
for /f "usebackq tokens=2 delims=:" %%f in (`ipconfig ^| findstr /c:%ip_address_string%`) do set ip_addr=%%f
REM Get 3rd octet
for /F "tokens=1,2,3,4 delims=." %%a in ('echo %ip_addr%') do set third_octet=%%c
net use z: \\%address_begining%.%third_octet%.%host_octet%

답변2

어쨌든 Windows와 함께 제공되고 단계가 매우 간단하므로 PowerShell을 사용하는 것이 좋습니다(합리적인 프로그래밍 언어에서와 마찬가지로).

IP 확인 --> ipconfig | findstr IPv4(또는 네트워크 인터페이스 ""Ethernet"?)

$result = (Get-NetIPAddress -InterfaceAlias "Ethernet" -AddressFamily IPv4)

$client_addr = $result[0].IPAddress

IP를 4옥텟(또는 토큰?)으로 분할

$octets = $client_addr.Split(".")

세 번째 옥텟을 통해 특정 네트워크 드라이브(목록에서?)에 매핑

예를 들어 서버가 항상 192.168.x.11인 경우:

# array elements are numbered 0..3
$octets[3] = 11

$server_addr = $octets -join "."

순 사용 z: \PATH-NETWORK-SHARE\FOLDER-NAME

net use Z: "\\$server_addr\The_folder"

관련 정보