Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Tcl Problem mit mysql & regexp

Empfohlene Antworten

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.....

:rolleyes:

gruß

thund3r

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 von Shogoki

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! :)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.