145122
Goto Top

Batch: Erkennung des IP-Bereiches

Hallo Zusammen, ich hoffe, ihr könnt mir weiterhelfen:

Ich habe 2 Standorte, die per VPN verbunden sind. Die IP-Bereiche sind:
Standort A: 192.168.178.x
Standort B: 192.168.179.x

An jedem Standort steht ein NAS:
Standort A: NAS178
Standort B: NAS179

Nun möchte ich meine Dateien mittels Batch-Datei und robocopy auf das NAS kopieren, an dessen Standort ich mich befinde.
Gibt es eine einfache Möglichkeit festzustellen, ob ich mich an Standort A oder B befinde und somit das richtige NAS angesprochen wird?

LG Stefan

Content-Key: 3267086888

Url: https://administrator.de/contentid/3267086888

Printed on: April 24, 2024 at 23:04 o'clock

Member: TK1987
TK1987 Jul 06, 2022 updated at 11:35:33 (UTC)
Goto Top
Moin Stefan,

einfach die NAS kurz anpingen und gucken, ob du eine Antwort erhälst.
@echo off

ping -n 1 Nas178 | >nul findstr /r /c:"[0-9] *ms"  
if %errorlevel% equ 0 echo NAS178 ist erreichbar

ping -n 1 Nas179 | >nul findstr /r /c:"[0-9] *ms"  
if %errorlevel% equ 0 echo NAS179 ist erreichbar

Über die IP geht es noch ein bisschen schneller als über den Hostnamen, insbesondere wenn dieser nicht erreichbar ist.

Gruß Thomas
Mitglied: 145122
145122 Jul 06, 2022 at 11:44:32 (UTC)
Goto Top
Hallo Thomas, danke für die rasche Antwort. Nur das bringt mir nicht all zu viel.
Über VPN sind vom Laptop aus beide NAS erreichbar.
Ich müsste also irgendwie feststellen, welche IP der Laptop hat (es sind virtuelle Netzwerkadapter vorhanden) oder welche IP der Router / DHCP Server hat.
Member: TK1987
TK1987 Jul 06, 2022 at 12:05:23 (UTC)
Goto Top
Zitat von @145122:
Ich müsste also irgendwie feststellen, welche IP der Laptop hat (es sind virtuelle Netzwerkadapter vorhanden) oder welche IP der Router / DHCP Server hat.
na dann
for /F "Tokens=2 Delims=" %%A in ('ping -4 -n 1 "%ComputerName%"') do for /F "Tokens=3 Delims=." %%B in ("%%A") do echo %%B  

Gruß Thomas
Member: emeriks
emeriks Jul 06, 2022 at 12:35:07 (UTC)
Goto Top
Hi,
wenn da ein AD im Spiel sein sollte und die Standorte und Subnetze im AD abgebildet sind, dann könnte man den Standort auch direkt abfragen:

nltest /dsgetsite

E.
Member: NordicMike
NordicMike Jul 06, 2022 at 12:44:58 (UTC)
Goto Top
Du erzeugst auf beiden Standorten für den jeweiligen NAS ein Alias „NAS“

Am Client pingst Du „NAS“ an und schaust von wem eine Antwort kommt.
Vom 178er oder vom 179er.

Oder anders: der Tunnel hat einen bestimmten DNS Server gepusht, den vom jeweiligen Standort. Ping diesen DNS Server nicht an sondern frag ab um welcher DNS Server aktuell zuständig ist (ipconfig). Der im 178er Netz oder der im 179er Netz. Einer davon wird fehlen.
Member: silent-daniel
silent-daniel Jul 06, 2022 updated at 16:52:45 (UTC)
Goto Top
Hallo,

du kannst den Standardgateway herausfinden und dann vergleichen.

Hier mal für den Anfang

for /f "tokens=*" %%i in ('ipconfig') do echo %%i
for /f "tokens=*" %%i in ('ipconfig^|findstr "Standardgateway"') do echo %%i
for /f "tokens=*" %%i in ('ipconfig^|findstr "Standardgateway"') do set Adresse=%%i
pause
echo %Adresse%
pause


if Adresse = 192.168.178.x copy ...
if Adresse = 192.168.179.x copy ...
else -> geh Kaffee holen ...

PS: irgendwie sowas.
Mitglied: 117471
117471 Jul 07, 2022 at 09:18:25 (UTC)
Goto Top
Hallo,

was soll das denn werden wenn es fertig ist.

Du generierst auf beiden DNS einen gleichlautenden Eintrag, der auf die jeweils lokale IP zeigt.

Dann kopierst Du direkt auf den Hostnamen.

Ideen gibt's… Neijneijneij…

Gruß,
Jörg
Mitglied: 145122
145122 Jul 07, 2022 at 10:25:43 (UTC)
Goto Top
hm... naja, also da geht ja der eine oder ander Vorschlag am Prinzip von einem VPN vorbei. Nur weil ich in der Batch-Datei auf ein bestimmtes NAS zugreifen möchte, heißt ja nicht, dass ich außerhalb dieser nicht auf das andere zugreifen will. Da fällt also der Alias schon mal durch.
Zumal habe ich über PiHole local DNS vergeben.

Die Idee von silent-daniel gefällt mir da schon besser, nur bekomme ich da einige Zeilen des Standardgateway ohne IP zurück.
Ich habe es nun wie folgt gelöst:

@echo off
ipconfig /all |find /i "DHCP-Server" >TMP.DAT  

find "192.168.178.1" TMP.DAT && goto Ort1  
find "192.168.179.1" TMP.DAT && goto Ort2  
goto ende

:Ort1
	echo Ort1
	pause
	goto ende

:Ort2
	echo Ort2
	pause
	goto ende

:ende
DEL TMP.DAT
pause
Member: Crusher79
Crusher79 Jul 07, 2022 updated at 12:43:42 (UTC)
Goto Top
$isTestKasse = $false
try {
    $IP = Get-WmiObject win32_networkadapterconfiguration | Where-Object { $_.ipaddress -like "1*" } | Select-Object -ExpandProperty ipaddress | Select-Object -First 1  
    if ($IP -eq "192.168.200.80") {  
        $isTestKasse = $true
    }
} catch {}

So z.B. ob es meine Testkasse ist.

Oder kurz $IP ist dann die IP .... Ginge auch mit WMI.

Powershell....

Laptop hat normal ja nur 2x stellen. Ethernet und WLAN. Du kannst auch die Beschreibung abfragen. Unten mal die ungefilterte Ausgabe an einen PC wo auch VMware Worskation drauf läuft!

Damit sollte man eig. klar immer die richtige IP raus bekommen.....


Unten der nativie PS Befehl. Da hast du nur den Namen der Schnittstelle mit drin. Über WMI und Hersteller sollte es eindeutig und immer richtig sein - so hoffe ich doch mal.

Empfehle hier mal WMI.


ServiceName : rt640x64
Description : Realtek PCIe GbE Family Controller



DHCPEnabled      : True
IPAddress        : 
DefaultIPGateway : 
DNSDomain        : 
ServiceName      : kdnic
Description      : Microsoft Kernel Debug Network Adapter
Index            : 0

DHCPEnabled      : True
IPAddress        : {172.18.0.101, fe80::3deb:edeb:5980:4963}
DefaultIPGateway : {172.18.0.254}
DNSDomain        : localdomain
ServiceName      : rt640x64
Description      : Realtek PCIe GbE Family Controller
Index            : 1

DHCPEnabled      : True
IPAddress        : 
DefaultIPGateway : 
DNSDomain        : 
ServiceName      : rtump64x64
Description      : Realtek USB GbE Family Controller
Index            : 2

DHCPEnabled      : True
IPAddress        : {192.168.9.1, fe80::cc7a:8559:c19c:1137}
DefaultIPGateway : 
DNSDomain        : 
ServiceName      : VMnetAdapter
Description      : VMware Virtual Ethernet Adapter for VMnet1
Index            : 3

DHCPEnabled      : True
IPAddress        : {192.168.67.1, fe80::684f:6a5:3874:de94}
DefaultIPGateway : 
DNSDomain        : 
ServiceName      : VMnetAdapter
Description      : VMware Virtual Ethernet Adapter for VMnet8
Index            : 4

Native mit PS:
Get-NetIPAddress -AddressFamily IPV4

IPAddress         : 169.254.109.113
InterfaceIndex    : 2
InterfaceAlias    : Ethernet 4
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 16
PrefixOrigin      : WellKnown
SuffixOrigin      : Link
AddressState      : Tentative
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : ActiveStore

IPAddress         : 169.254.58.135
InterfaceIndex    : 9
InterfaceAlias    : Ethernet 3
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 16
PrefixOrigin      : WellKnown
SuffixOrigin      : Link
AddressState      : Tentative
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : ActiveStore

IPAddress         : 169.254.121.173
InterfaceIndex    : 17
InterfaceAlias    : LAN-Verbindung 4
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 16
PrefixOrigin      : WellKnown
SuffixOrigin      : Link
AddressState      : Tentative
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : ActiveStore

IPAddress         : 192.168.67.1
InterfaceIndex    : 20
InterfaceAlias    : VMware Network Adapter VMnet8
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Dhcp
SuffixOrigin      : Dhcp
AddressState      : Preferred
ValidLifetime     : 00:17:17
PreferredLifetime : 00:17:17
SkipAsSource      : False
PolicyStore       : ActiveStore

IPAddress         : 192.168.9.1
InterfaceIndex    : 6
InterfaceAlias    : VMware Network Adapter VMnet1
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Dhcp
SuffixOrigin      : Dhcp
AddressState      : Preferred
ValidLifetime     : 00:17:13
PreferredLifetime : 00:17:13
SkipAsSource      : False
PolicyStore       : ActiveStore

IPAddress         : 169.254.118.70
InterfaceIndex    : 7
InterfaceAlias    : LAN-Verbindung 3
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 16
PrefixOrigin      : WellKnown
SuffixOrigin      : Link
AddressState      : Tentative
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : ActiveStore

IPAddress         : 169.254.139.134
InterfaceIndex    : 12
InterfaceAlias    : Ethernet 2
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 16
PrefixOrigin      : WellKnown
SuffixOrigin      : Link
AddressState      : Tentative
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : ActiveStore

IPAddress         : 172.23.133.4
InterfaceIndex    : 15
InterfaceAlias    : LAN-Verbindung 2
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Dhcp
SuffixOrigin      : Dhcp
AddressState      : Preferred
ValidLifetime     : 364.17:11:18
PreferredLifetime : 364.17:11:18
SkipAsSource      : False
PolicyStore       : ActiveStore

IPAddress         : 172.18.0.101
InterfaceIndex    : 4
InterfaceAlias    : Ethernet
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Dhcp
SuffixOrigin      : Dhcp
AddressState      : Preferred
ValidLifetime     : 01:12:17
PreferredLifetime : 01:12:17
SkipAsSource      : False
PolicyStore       : ActiveStore

IPAddress         : 127.0.0.1
InterfaceIndex    : 1
InterfaceAlias    : Loopback Pseudo-Interface 1
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 8
PrefixOrigin      : WellKnown
SuffixOrigin      : WellKnown
AddressState      : Preferred
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
Member: Crusher79
Crusher79 Jul 07, 2022 at 12:54:29 (UTC)
Goto Top
PS:
Get-NetIPAddress -AddressFamily IPV4

Du kannst den Adapter Namen ja ändern! Statt Ethernet 1 ,2, 3 was eindeutiges nehmen.

Ohne ka VMware, oder das du ständig NIC änderst bleibt das meist eh immer gleich. Achte auf DHCP und somit nur 1x IP für den Adapter.

Dann sollte auch dieser Einzeiler seinen Zweck vollkommen erfüllen!
Member: silent-daniel
silent-daniel Jul 07, 2022 at 16:28:23 (UTC)
Goto Top
Zitat von @117471:

Hallo,

was soll das denn werden wenn es fertig ist.

Du generierst auf beiden DNS einen gleichlautenden Eintrag, der auf die jeweils lokale IP zeigt.

Dann kopierst Du direkt auf den Hostnamen.

Ideen gibt's… Neijneijneij…

Gruß,
Jörg

Hallo,

Sorry, das war nur ein Beispiel, was ich von einem anderen Thread kopiert habe, wollte nur zeigen, dass es über das Gatewa herauszufinden ist.

Der nachfolgende User hat es besser gemacht.