Eisbär 10 Geschrieben 5. Oktober 2005 Melden Teilen Geschrieben 5. Oktober 2005 Hi, falls es auch VBS sein kann. :) Option Explicit const C_Computer = "." const C_IP = "10.49.248.20" const C_Range = "10.49.250" DIM G_IP call S_ScanIP call S_CheckIP sub S_ScanIP DIM O_WMI DIM O_IPSet DIM O_IP DIM i Set O_WMI = GetObject("winmgmts:\\" & C_Computer & "\root\cimv2") Set O_IPSet = O_WMI.ExecQuery ("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE") For Each O_IP in O_IPSet If Not IsNull(O_IP.IPAddress) Then For i=LBound(O_IP.IPAddress) to UBound(O_IP.IPAddress) G_IP = O_IP.IPAddress(i) exit for Next End If Next end sub sub S_CheckIP if G_IP = C_IP then wscript.echo "gleiche IP-Adresse: " & C_IP else wscript.echo "gefunden: " & G_IP & vbcrlf & "gesucht: " & C_IP end if if instr(C_IP,C_Range) > 0 then wscript.echo "gleiche Subnetz" else wscript.echo "anderes Subnetz" end if end sub Ausgabe: Gleiche IP-Adresse oder unterschiedliche IP-Adresse, gleiches Subnetz oder anderes Subnetz. Einfach mal die entsprechenden Konstanten anpassen. Wenn "." bei C_Computer gesetzt ist, wird der lokale Computer genommen, ansonsten einfach den Computernamen anpassen. Für ein Login-Script muss natürlich zuvor noch der Computername ausgelesen werden. Aber das möchte ich jetzt nicht alles in ein Script packen, da sonst die Übersichtlichkeit für nicht VB-Scripte verloren geht. Das Script habe ich angehängt, bitte das TXT entfernen IP-Adresse bestimmen.vbs.txt Zitieren Link zu diesem Kommentar
Johannes80 10 Geschrieben 5. Oktober 2005 Autor Melden Teilen Geschrieben 5. Oktober 2005 na VBS nützt mir leider nix, muss schon eine Batch Datei sein. Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 5. Oktober 2005 Melden Teilen Geschrieben 5. Oktober 2005 Hallo Johannes, schau den Set-Befehl mal genauer an! http://www.bb-sys.de/bbshell.htm Falls du weitere Hilfe brauchst, posten! Edgar Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 5. Oktober 2005 Melden Teilen Geschrieben 5. Oktober 2005 An der eingabeaufforderung wird mit ipconfig auch die IP ausgegeben. Packen wir das mal in eine For-Schleife zur Textiteration. for /f %%e in ('ipconfig.exe') do echo %%e pause Der Wildcard für Tokens bewirkt jeweils die Ausgabe der ganzen Zeile als Block. for /f "tokens=*" %%e in ('ipconfig.exe') do echo %%e pause Mit Skip werden Zeilen übersprungen. for /f "tokens=* skip=6" %%e in ('ipconfig.exe') do echo %%e pause Zitieren Link zu diesem Kommentar
Johannes80 10 Geschrieben 5. Oktober 2005 Autor Melden Teilen Geschrieben 5. Oktober 2005 ja danke sehr guter TIPP also mein Skript sieht jetzt so aus: @echo off for /f "Tokens=2 Delims=[] skip=1" %%i in ('ping -n 1 %computername%') do set IPAdress=%%i echo %IPAdress% set IPAdress=%IPAdress:~0,10% echo %IPAdress% und dann erhalt ich die 3B meiner IP Adresse die ich vergleichen will ;-) thx Joe Zitieren Link zu diesem Kommentar
Data1701 10 Geschrieben 5. Oktober 2005 Melden Teilen Geschrieben 5. Oktober 2005 Na geht doch ;) Gruß Data Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 5. Oktober 2005 Melden Teilen Geschrieben 5. Oktober 2005 Mit set wird der Schleifeninhalt in eine Variable gschrieben, mit & das goto angehängt und damit die Schleife vorzeitig beendet. for /f "tokens=* skip=6" %%e in ('ipconfig.exe') do set ipadr=%%e & goto end :end echo %ipadr% pause Mit Tokens=14 wird nur der die IP enthaltende Block verarbeitet. for /f "tokens=14 skip=6" %%e in ('ipconfig.exe') do set ipadr=%%e & goto end :end echo %ipadr% pause Mit set lassen sich auch Teile einer Zeichenkette extrahieren. for /f "tokens=14 skip=6" %%e in ('ipconfig.exe') do set ipadr=%%e & goto end :end echo %ipadr% set ipadr=%ipadr:~0,8% echo %ipadr% pause Ich hoffe, das hilft erstmal weiter. Gruß Edgar Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.