thund3rf0x Geschrieben 20. Januar 2011 Teilen Geschrieben 20. Januar 2011 Hallo zusammen! Ich hab folgendes Problem.. In einem Tcl script brauche ich eine IP-Adresse... Diese lass ich mir aus einer Datenbank liefern, muss aber überprüfen, ob es sich um eine gültige IP handelt, da in der Datenbank auch IPs sind, die ich nicht brauche! Der Aufruf ist wie folgt: mysql -u user -p password -ABC_DB -e "SELECT Svr_IP FROM Servers S WHERE town='townA' and Svr_name='nameA';" Dann erhalte ich die Ausgabe +----------------+ | Svr_IP | +----------------+ | ***.***.***.*** | +------------------+ Wie komm ich jetzt NUR an die IP selber ran? Wenn ich hier regular expression drüber laufen lasse, dann findet er nie eine gültige IP... meine regular expression orientiert sich an diesem Beispiel: if {[regexp {(^[2][5][0-5].|^[2][0-4][0-9].|^[1][0-9][0-9].|^[0-9][0-9].|^[0-9].)([2][0-5][0-5].|[2][0-4][0-9].|[1][0-9][0-9].|[0-9][0-9].|[0-9].)([2][0-5][0-5].|[2][0-4][0-9].|[1][0-9][0-9].|[0-9][0-9].|[0-9].)([2][0-5][0-5]|[2][0-4][0-9]|[1][0-9][0-9]|[0-9][0-9]|[0-9])$} $string match v1 v2 v3 v4]} {puts "$v1$v2$v3$v4"} else {puts "none"} Hat jemand ne Idee, einen Tipp oder ähnliches? Auf die Datenbank habe ich keinen Einfluss..... gruß thund3r Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Shogoki Geschrieben 20. Januar 2011 Teilen Geschrieben 20. Januar 2011 (bearbeitet) Hallo, Ich kenn mich zwar nicht so mit tcl aus, aber vieleicht kann ich dir ja trotzdem helfen. Also zum einen würde es vermutlich einfacher werden wenn du in deinem mysql befehl dern schalter -s einbaust. Dann bekommste nämlich nur die Ergebnisse und nicht den ganzen andern Kram zur schöneren Darstellung. In deinem Beispiel also: mysql -u user -p password -ABC_DB -s -e "SELECT Svr_IP FROM Servers S WHERE town='townA' and Svr_name='nameA';" Zu der RegExp: Ich würde auf jedenfall die Punkte escapen, da diese sonst auf jedes Zeichen matchen und nicht nur auf einen Punkt. Wenn doch noch Zeichen vor oder hinter der IP-Adresse stehen (obwohl -s gesetzt ist) muss das auch in der RegExp stehen also etwas wie .* am Anfang und am Ende. Aber Ich denke mit dem -s Schalter von mysql sollte dein Problem auch mit der aktuellen RegExp zu lösen sein. Hoffe Ich konnte helfen. MfG Shogoki Bearbeitet 20. Januar 2011 von Shogoki Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
thund3rf0x Geschrieben 21. Januar 2011 Autor Teilen Geschrieben 21. Januar 2011 Hey! Ja danke, genau das hat mir gefehlt! Hab noch nicht so viel mit mysql gemacht, danke für deine Hilfe, funktioniert jetzt wunderbar! Und den Tipp für den . werd ich auch berücksichtigen! Danke dir! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.