Seite 1 von 1

IP-Adresse spliten

Verfasst: 23 Jan 2013, 07:57
von Cherry
Guten Morgen,

ich möchte den 3. Bereich der IP rausfiltern z. B. bei 192.168.178.3 die 178. Wie sollte ich das am besten machen.
Ich kenne in Opsi das takeString(splitstring), aber wie lese ich von Opsi die Ip aus.
Im moment würde ich die IP so einlesen:
ipconfig /all | findstr "IPv4-Ad" > C:\tmp\a.log
und von a.log mittels einer StringList wieder zu Opsi reinholen.
Gibt es eine bessere Lösung?

Danke und schöne Grüße

Re: IP-Adresse spliten

Verfasst: 23 Jan 2013, 12:53
von erwinr
Hi,

leider sagen Sie nicht, in welchem Kontext Sie die IP-Adresse herausfinden wollen.
Daher hier 2 Möglichkeiten:

1. Auf der Linux-Kommandozeile (am OPSI-Server):

Code: Alles auswählen

opsi-admin -d method getIpAddress pcname.domain.tld 
oder
2. In einem Winst-Script:

Code: Alles auswählen

GetMyIpByTarget
zB:

Code: Alles auswählen

set $CompValue$ = getMyIpByTarget("%opsiServer%")
Obiges Beispiel und Funktionen zum Zersplittern des Strings finden Sie in der Winst-Dokumentation, hier:
http://download.uib.de/opsi4.0/doc/html ... ons-others

Gruß, E.R.

Re: IP-Adresse spliten

Verfasst: 23 Jan 2013, 14:27
von Cherry
Hallo,

danke, für die Antwort.
Ich möchte die IP des Rechners auslesen, auf dem das Opsi Paket gerade installiert wird.
Und dann anhand dieses 3. Bereiches einen Regkey ausführen.

Kann ich mit "GetMyIpByTarget" auch die IP des eigenen Rechners rausfinden, also auf dem das Script gerade ausgeführt wird?

Danke

Re: IP-Adresse spliten

Verfasst: 23 Jan 2013, 18:08
von tobias
Cherry hat geschrieben:Hallo,

danke, für die Antwort.
Ich möchte die IP des Rechners auslesen, auf dem das Opsi Paket gerade installiert wird.
Und dann anhand dieses 3. Bereiches einen Regkey ausführen.

Kann ich mit "GetMyIpByTarget" auch die IP des eigenen Rechners rausfinden, also auf dem das Script gerade ausgeführt wird?

Danke
Wie erwinr oben schreibt mit GetMyIpByTarget. Das ist ein WINST befehl.
Splitten kannst du mit set
$list1$ = splitString ("192.168.178.3", ".")

dandurch erhälst du eine strinliste welche die werte
192
168
178
3

enthält. Nun kannst du mit einer abfrage schauen was im 3. oktet der IP adresse steht und entscheiden ob du was in die registry schreibst oder nicht :)

IP-Adresse spliten

Verfasst: 07 Apr 2014, 11:09
von OpsiBenutzer
Hallo tobias,

jetzt muss ich nochmal deinen Post aufgreifen, da ich aktuell wieder vor dem Problem stehe eine IP zu splitten. Das splitten mit reinem Text funktioniert, aber wenn ich die IP in eine Variable einlese und dann splitte, funktioniert es nicht.

z. B.
set $CompValue$ = getMyIpByTarget("%opsiServer%")
$list1$ = splitString ($CompValue$, ".")
----> erscheint ein Syntaxfehler

wenn ich jedoch die Variable in der Methode splitString in Anführungszeichen setze, wird versucht den Namen $CompValue$" zu splitten.

set $CompValue$ = getMyIpByTarget("%opsiServer%")
$list1$ = splitString ("$CompValue$", ".")

Hast du noch eine Idee wie man das am besten lösen kann?

Vielen Dank.

Re: IP-Adresse spliten

Verfasst: 07 Apr 2014, 11:39
von tobias
Du musst eine String Liste nehmen und keine Variable ;)

wobei halt verlesen. Müsste eigtl. so gehen... ich probiers grade mal bin mir nicht sicher :D

Re: IP-Adresse spliten

Verfasst: 07 Apr 2014, 12:02
von tobias
Getestet so gehts:

Code: Alles auswählen

[Actions]
DefVar $CompValue$
DefStringList $list1$

set $CompValue$ = getMyIpByTarget("153.96.112.1")
set $list1$ = splitString ($CompValue$,".")

message takeString(2,$list1$)

[GELÖST] IP-Adresse spliten

Verfasst: 07 Apr 2014, 14:59
von OpsiBenutzer
Hallo,

klasse, so gehts.

Vielen herzlichen Dank. :)

LG