xwuffix
Goto Top

Anteilige IP als Systemvariable per Batch

Hallo,
ich bin noch relativ neu in dem Bereich, und habe da mal eine Frage:
Ich benötige einen Befehl, der mit optimaler Weise die IP-Adresse eines Servers im Netzwerk ausließt, diese variiert aber endet immer auf 2.

Bsp:
ip=xxx.xxx.xxx.2

das wiederum sollte als "host" definiert werden.

set host=xxx.xxx.xxx.2

Wenn das geht.


Alternativ sollte die IP des Benutzers der LAN-Verbindung (kein WLAN oder Bluetooth-Adapter, welche ebenfalls aktiv sind) ausgelesen werden. Davon aber nur die ersten 3 Teilbereiche.

ipLAN=123.456.789.xxx

Die ersten 3 Teilbereiche sollten als Variable "LNetz" zusammengefasst werden und die Endung wieder auf xxx.xxx.xxx.2 fest vorgegeben sein.

Bsp:
%LNetz.2%

Diese Varialbe mit Endung sollte dann wiederum als "host" definiert werden

Hoffe ich hab mich verständlich ausgedrückt. Geht das und wenn ja wie ?? =)

Content-Key: 210891

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

Printed on: April 26, 2024 at 04:04 o'clock

Member: bastla
bastla Jul 08, 2013 updated at 18:19:44 (UTC)
Goto Top
Hallo xWuffix und willkommen im Forum!

Hat denn der Server auch einen Namen?

Für die Alternativ-Variante könntest Du mal als Ausgangspunkt diesen Beitrag nehmen ...

Grüße
bastla
Member: xWuffix
xWuffix Jul 08, 2013 at 18:17:20 (UTC)
Goto Top
Hallo und schon mal danke für die schnelle Antwort.

Der Server hat auch einen Namen,allerdings variiert dieser auch.
Der Server hat eine feste Bezeichnun FG und eine Nummer.

Bsp.: FG_1234

Den Link kann ich leider nicht öffnen.
Member: bastla
bastla Jul 08, 2013 at 18:20:21 (UTC)
Goto Top
Hallo xWuffix!

Link funktioniert jetzt.

Grüße
bastla
Member: xWuffix
xWuffix Jul 08, 2013 updated at 18:47:11 (UTC)
Goto Top
Ah ok jetzt seh ichs, aber ich kapier es nicht...

@echo off

for /f "tokens=2 delims=" %%a in ('ping -n 1 -4 %COMPUTERNAME% ^| find /I "%COMPUTERNAME%"') do @echo %%a

Und wie bekomme ich nun die ausgegebene IP in eine Variable?
Ich muss vielleicht noch dazu sagen, dass die Batch-Datei auf den Clients ausgeführt werden soll UND am Server.
Member: bastla
bastla Jul 08, 2013 at 18:52:07 (UTC)
Goto Top
Hallo xWuffix!
Und wie bekomme ich nun die ausgegebene IP in eine Variable?
Na so:
for /f "tokens=2 delims=" %%a in ('ping -n 1 -4 %COMPUTERNAME% ^| find /I "%COMPUTERNAME%"') do set "IP=%%a"
Ich muss vielleicht noch dazu sagen, dass die Batch-Datei auf den Clients ausgeführt werden soll UND am Server.
So what?

Grüße
bastla
Member: xWuffix
xWuffix Jul 08, 2013 updated at 20:58:42 (UTC)
Goto Top
Ahhhh ja super ich hatte nen Tippfehler -.- Vielen Dank so müsste es jetzt eigentlich klappen oder?:

@echo off
 
 
 
echo Dieses Fenster bitte nicht schliessen, Danke!
 
 
 
for /f "tokens=2 delims=" %%a in ('ping -n 1 -4 %COMPUTERNAME% ^| find /I "%COMPUTERNAME%"') do set "host=%%a"  
 
 
 
:again
 
(set host) & echo Netzwerkverbindung ist OFFLINE wait.....
 
ping -n 1 %host%>nul)||goto again
 
 
 
(set host) & echo Netzwerkverbindung ist ONLINE...
 
echo Autostart wird ausgefuehrt...
 
echo.
 
 
 
REM Server
 
if exist C:\fg_xxxx\Phoen.exe start C:\fg_xxxx\Phoen.exe
 
if exist C:\Programme\FRITZ!\FriFax32.exe start C:\Programme\FRITZ!\FriFax32.exe
 
if exist C:\Programme\Cospace\Cospace.exe start C:\Programme\Cospace\Cospace.exe
   
if exist C:\Programme\Microsoft SQL Server\80\Tools\Binn\sqlmangr.exe start C:\Programme\Microsoft SQL Server\80\Tools\Binn\sqlmangr.exe /n
 
if exist C:\Programme\Ezurio\Bluetooth Software\BTTray.exe start C:\Programme\Ezurio\Bluetooth Software\BTTray.exe start /n
  
REM Allgemeine PCs
 
start \\%host%\fg_xxxx\Phoen.exe
 
if exist C:\Programme\sysinternals\sysinternals.bat start C:\Programme\sysinternals\sysinternals.bat
 
if exist C:\Program Files (x86)\sysinternals\sysinternals.bat start C:\Program Files (x86)\sysinternals\sysinternals.bat

del C:\Users\%USERNAME%\Desktop\nul)

[Edit Biber] Codeformatierung.[/Edit]
Member: bastla
bastla Jul 08, 2013 updated at 22:43:12 (UTC)
Goto Top
Hallo xWuffix!
so müsste es jetzt eigentlich klappen oder?:
Das "Es" hast Du bis jetzt ja noch gar nicht beschrieben - allerdings steht in %host% so immer die Adresse des Rechners, auf dem der Batch ausgeführt wird, was den "ping" vergleichsweise unnötig erscheinen lässt ...

Falls Du die gefundene Adresse wie oben beschrieben noch anpassen willst (auf "2" im letzten Oktett), könntest Du ggf in Friemlers Tutorial zur FOR-Schleife noch Hinweise finden.

Grüße
bastla
Member: Biber
Biber Jul 08, 2013 updated at 23:35:58 (UTC)
Goto Top
Moin xWuffix,

trotz allem willkommen im Forum.

Ich hätte es zwar anders formuliert, aber ich sehe auch dieselben drei Ungereimtheiten, die vor einem Abschluss dieses Beitrags noch mehrfaches Nachfragen erfordern werden.

Nur für den Fall, dass bastla zu vorsichtig formuliert haben sollte, versuche ich noch mal zu übersetzen, was uns fehlt.

Zitat von @bastla:
Das "Es" hast Du bis jetzt ja noch gar nicht beschrieben -
--> hier steht bei bastla ein gedankliches " - also mach es bitte endlich!" dahinter, falls du es nicht wahrgenommen hast.

allerdings steht in %host% so immer die Adresse des Rechners, auf dem der Batch ausgeführt wird,
... was daran liegt, dass du bestimmt nicht die (immer vorhandene) Variable %COMPUTERNAME% anpingen willst, sondern eine selbst vergebene %MeinServername% - aber die wird noch nirgends gesetzt,

was den "ping" vergleichsweise unnötig erscheinen lässt ...
Okay, ich hätte es eher eher mit einem Filmzitat aus "Inside Man" gesagt:
"Es stellt sich die Frage nach dem 'Warum?'.
Die Antwort ist einfach:: 'Weil ich es kann.' "

Aber die Formulierung "vergleichsweise unnötig erscheinen lässt" hat bestimmt auch manchem den Montach gerettet. face-wink

Grüße
Biber