58270
Goto Top

IP-Bereich Position 2 und 3 ermitteln

Seid gegrüßt

Ich möchte gerne die 2. und 3. Position der lokalen IP-Adresse ermitteln und anschließend weiterverarbeiten.


z.B.

bei der IP 192.168.2.230

die 168 in eine variable speichern und die 2 in einer variable speichern. oder alternativ den teilstring 192.2 in einer variable speichern.

Warum ich das möchte? Ich möchte daraus gerne eine andere IP zusammen setzen. z.B. 10.192.2.101

Habt ihr eine idee wie ich das realisieren kann?


vielen dank über jede anregung wäre ich dankbar.

greets Andy

Content-Key: 74960

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

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

Member: Spackenbremse
Spackenbremse Dec 01, 2007 at 16:44:20 (UTC)
Goto Top
Hallo.

versuchs doch mal mit

SET ip=192.168.2.230
SET ip1=%ip:~0,5%

dann haste zumindest 192.1

wenn du dann

SET ip=192.168.2.230
SET ip1=%ip:~0,3%

macht, griegste nur 192 raus.
Member: miniversum
miniversum Dec 01, 2007 at 17:38:12 (UTC)
Goto Top
Oder es geht auch so:
SET ip=192.168.2.230
FOR /F "tokens=1,2,3,4 delims=." %%a in ('echo %ip%') do set Teil1=%%a & set Teil2=%%b & set Teil3=%%c & set Teil4=%%d
echo Teil1=%Teil1%
echo Teil2=%Teil2%
echo Teil3=%Teil3%
echo Teil4=%Teil4%

miniversum
Member: bastla
bastla Dec 01, 2007 at 17:44:03 (UTC)
Goto Top
Hallo ndugudagda und willkommen im Forum!

Zum Zerlegen von Texten eignet sich eine "for"-Schleife, da sie die Zerlegung in Einzelteile ("tokens") anhand von Trennzeichen ("delimiters", kurz: "delims") vornehmen kann - Beispiel (direkt an der Kommandozeile eingeben):
for /f "tokens=1-4 delims=." %a in ("192.168.2.230") do @echo Teil2: %b und Teil 3: %c  
Hier werden also 4 Bestandteile ermittelt und als %a, %b, %c und %d zur Verfügung gestellt. Das Trennzeichen "." fällt dabei weg.

Das funktioniert auch mit Variablen und auch in einem Batch (dann doppelte Prozentzeichen) und auch gezielt zB nur für die Teile 2 und 3:
for /f "tokens=2-3 delims=." %%a in ("%IP%") do set IPNeu=10.%%a.%%b.101  
echo %IPNeu%
Da hier bei Teil ("token") 2 begonnen wurde, erhält dieser die Variable %%a.

Grüße
bastla

[Edit] Weil ich auch immer so viel schwafeln muss ... face-wink [/Edit]
Mitglied: 58270
58270 Dec 02, 2007 at 15:05:43 (UTC)
Goto Top
Hallo und vielen Dank für die schnellen Antworten

Ich habe es jetzt wiefolgt gelöst:

@echo off

for /F "tokens=13,*" %%i in ('ipconfig^|find "IP-Ad"') do set IP=%%j
REM echo %IP%

for /F "tokens=1-4 delims=." %%a in ("%IP%") do set IPNeu=10.%%b.%%c.101

echo %IPNeu%
pause

Funktioniert superface-smile

Schönen ersten Advent