Netzlaufwerk nach IP zuordnen (3. Oktett)

Netzlaufwerk nach IP zuordnen (3. Oktett)

Ich möchte das richtige Netzlaufwerk (von mehreren) einem Computer mit der per DHCP über ein Batch-Skript zugewiesenen IP zuordnen.

Wenn der Computer also eine Verbindung herstellt und d. h. die IP 192.168 zugewiesen bekommt.1.10 über DHCP, sollte er das Netzwerklaufwerk auf 192.168 mappen.1.11.

Bekommt der Rechner die IP 192.168.2.10 über DHCP, sollte er das Netzwerklaufwerk auf 192.168 mappen.2.11. Und so weiter und so weiter.

Ich möchte also die richtige Netzwerkgeräte-IP über das dritte Oktett der Computer-IP zuweisen. Die Netzwerkgeräte-IPs sind statisch. Nur die Computer-IP ist im Netzwerk zufällig (DHCP).

Ich schätze, das Skript sollte ungefähr so ​​aussehen:

  1. IP prüfen --> ipconfig | findstr IPv4 (oder Netzwerkschnittstelle "Ethernet"?)
  2. IP in 4 Oktette (oder Token?) aufteilen
  3. Zuordnung zu einem bestimmten Netzlaufwerk (aus einer Liste?) über das 3. Oktett --> net use z: \PFAD-NETZWERK-FREIGABE\ORDNERNAME

Ich hoffe, Sie können mir hier weiterhelfen!

Vielen Dank im Voraus.

Antwort1

Sie könnten Folgendes versuchen (vorausgesetzt, jeder Host hat nur eine IP-Adresse):

@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%

Antwort2

Ich würde die Verwendung von PowerShell empfehlen, da es ohnehin in Windows enthalten ist und die Schritte ziemlich unkompliziert sind (wie in jeder sinnvollen Programmiersprache):

IP prüfen --> ipconfig | findstr IPv4 (oder Netzwerkschnittstelle "Ethernet"?)

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

$client_addr = $result[0].IPAddress

IP in 4 Oktette (oder Token?) aufteilen

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

Zuordnung zu einem bestimmten Netzlaufwerk (aus einer Liste?) über das 3. Oktett

Wenn der Server beispielsweise immer 192.168.x.11 ist:

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

$server_addr = $octets -join "."

net use z: \PFAD-NETZWERK-FREIGABE\ORDNERNAME

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

verwandte Informationen