Johannes80 10 Geschrieben 5. Oktober 2005 Melden Teilen Geschrieben 5. Oktober 2005 Hi Leute, ich bräucht mal einen Tipp und zwar gehts darum das ich ein Login Skript schreiben möchte, das die IP des rechners ermittelt diese mit einer vorgegebenen IP vergleicht und jenachdem ob gleich oder ungleicht in der BATCh Datei was anderes ausführt. so quasi: if localIP == xxx.xxx.xxx.xxx goto label nur wie bekomm ich die loKale IP? thx Joe Zitieren Link zu diesem Kommentar
Mr.Check 10 Geschrieben 5. Oktober 2005 Melden Teilen Geschrieben 5. Oktober 2005 "Falls in einer Batchdatei einmal die eigene IP-Adresse als Variable benötigt wird, funktioniert das über folgenden Befehl: for /f "Tokens=2 Delims=[] skip=1" %%i in ('ping -n 1 %computername%') do set IPAdress=%%i Danach steht die Variable: %IPAdress% zur freien Verfügung." Quelle: http://faq.winboard.org/index.php?sid=167965&lang=de&action=artikel&cat=2&id=600&artlang=de Zitieren Link zu diesem Kommentar
Johannes80 10 Geschrieben 5. Oktober 2005 Autor Melden Teilen Geschrieben 5. Oktober 2005 hey super, danke für die rasche antwort ;-) hab ewig gegoogelt und nix vernünftiges gefunden. und wie vergleich ich jetzt die lokale IP mit einer netzwerkaddesse? also if 192.168.10.x(lokaleIP) = 192.168.10.0 then ..... lg. Joe Zitieren Link zu diesem Kommentar
Data1701 10 Geschrieben 5. Oktober 2005 Melden Teilen Geschrieben 5. Oktober 2005 Hmh, intressanter Ansatz. Also mit "ipconfig >Test.txt" schreibst Du den Inhalt von Ipconfig in eine txt-Datei. Innerhalb dieser Textdatei musst Du nun die IP-Adresse ermitteln und widerum irgendwo ablegen, z.B. mit "Find "IP-Adresse" test.txt >finden.txt. Nun hast Du schon einmal die IP-Adresse halbwegs extrahiert. Allerdinsg steht da noch einiges an Müll drin. Aus der finden.txt musst Du nun noch die IP-Adresse extrahieren und zwar so, dass Sie alleine steht, damit Du sie mit deinen if-Befehl als Variabel nutzen kannst, dass geht glaube ich nur mit einem VBS-Skript und da muss ich passen. Alsi ich habe die Vorlage geliefert, wer übernimmt. Gruß Data PS: Uups etwas lange geschrieben. Nun gut - so geht es auch. Zitieren Link zu diesem Kommentar
Mr.Check 10 Geschrieben 5. Oktober 2005 Melden Teilen Geschrieben 5. Oktober 2005 ok, für alle cheater unter euch hier die komplettlösung :) http://www.jex-treme.de/forum/archive/18925/thread.html Zitieren Link zu diesem Kommentar
Johannes80 10 Geschrieben 5. Oktober 2005 Autor Melden Teilen Geschrieben 5. Oktober 2005 also der Ansatz vom Mr.Check ist schon sehr gut ich müsst jetzt eigentlich nur noch die Variable %IPAdress% so bararbeiten das daraus eine Netzwerkadresse wird also zB 192.168.10.0 wie geht das? Joe Zitieren Link zu diesem Kommentar
Data1701 10 Geschrieben 5. Oktober 2005 Melden Teilen Geschrieben 5. Oktober 2005 Wo ist Dein Problem ? Mit der ersten Lösung von Mr.Check, hast Du doch direkt eine Umgebungsvariable mit der Du arbeiten kannst. Führe mal "Set" aus. Da steht Deine IP nach dem Du das hast laufen lassen: "for /f "Tokens=2 Delims=[] skip=1" %%i in ('ping -n 1 %computername%') do set IPAdress=%%i" Gruß Data Zitieren Link zu diesem Kommentar
Mr.Check 10 Geschrieben 5. Oktober 2005 Melden Teilen Geschrieben 5. Oktober 2005 da ich keine ahnung hab wie man im batchscript eine zeichenkette bearbeitet kann ich nur vorschlagen eine schleife zu bauen und die ip mit jeder einzelnen ip des bereiches zu vergleichen (sind ja im c-netz zum glück nicht so viele ;)) also: FOR %%a IN (1 2 3 4.....252 253 254) DO IF %IPAdress% == 192.168.1.%%a echo .. ob man FOR mit IF zusammensetzen kann, hab ich noch nie probiert. theoretisch sollte das aber so hinhauen. gibt bestimmt ne schönere lösung, aber das könnte eine von mehreren möglichkeiten sein @data1701 das problem ist, dass er die ip nicht mit einer anderen ip, sondern mit einer net-id vergleichen will bzw überprüfen, ob sie zum netz gehört. Zitieren Link zu diesem Kommentar
Johannes80 10 Geschrieben 5. Oktober 2005 Autor Melden Teilen Geschrieben 5. Oktober 2005 ja ganz einfach weil ich die lokale IP mit der IP vom subnetz vergleichen muss, damit ich weiß in welchem subnetz der PC ist, klingt doch logisch oder? Zitieren Link zu diesem Kommentar
Data1701 10 Geschrieben 5. Oktober 2005 Melden Teilen Geschrieben 5. Oktober 2005 Yep, voll logisch Reichen zur Indentifikation nicht die ersten drei Bytes der IP-Adresse z.B., oder hast du mal B-Masken, mal C-Masken und hier und da auch noch kleinere IP-Masken ? Gruß Data Zitieren Link zu diesem Kommentar
Mr.Check 10 Geschrieben 5. Oktober 2005 Melden Teilen Geschrieben 5. Oktober 2005 richtig data, die frage ist nur wie man dem batch-script jetzt beibringt anstatt der vollen ip, die in der variablen steckt nur die ersten drei bytes für einen vergleich zu verwenden ;) Zitieren Link zu diesem Kommentar
Johannes80 10 Geschrieben 5. Oktober 2005 Autor Melden Teilen Geschrieben 5. Oktober 2005 ja genau also ich hab nur eine 24er subnetzmask also die ersten 3 Byte müsst ich vergleichen. nur wie stutz ich jetzt die variable mit den 4byte auf 3 byte zam? geht das vielelciht auch mit dem for befehl und als token "."? lg. Zitieren Link zu diesem Kommentar
Data1701 10 Geschrieben 5. Oktober 2005 Melden Teilen Geschrieben 5. Oktober 2005 ?? Mit Sicherheit - Nur wie. Wo sind denn die SQL - VBS und Batchgötters vom Board ?? Gruß Data Zitieren Link zu diesem Kommentar
Mr.Check 10 Geschrieben 5. Oktober 2005 Melden Teilen Geschrieben 5. Oktober 2005 hab noch ne idee: die ip-adresse in eine datei schreiben, dann zb. nach "192.168.10." durchsuchen lassen und wenn kein leeres ergebnis zurückkommt, bist du im netz :) Zitieren Link zu diesem Kommentar
Data1701 10 Geschrieben 5. Oktober 2005 Melden Teilen Geschrieben 5. Oktober 2005 Stimmt, sozusagen eine negativ-Abfrage. Gruß Data 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.