通过 IP 映射网络驱动器(第三个八位字节)

通过 IP 映射网络驱动器(第三个八位字节)

我想通过批处理脚本将正确的网络驱动器(从多个网络驱动器中)映射到使用 DHCP 分配的 IP 的计算机。

因此当计算机连接并且 ie 被分配 IP 192.168.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 (或网络接口“以太网”?)
  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

建议使用 PowerShell,因为它无论如何都随 Windows 一起提供,并且步骤非常简单(就像使用任何合理的编程语言一样):

检查 IP --> ipconfig | findstr IPv4 (或网络接口“以太网”?)

$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 "."

net use z:\PATH-NETWORK-SHARE\FOLDER-NAME

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

相关内容