Zum Inhalt springen

zukzuk

Mitglieder
  • Gesamte Inhalte

    18
  • Benutzer seit

  • Letzter Besuch

Letzte Besucher des Profils

Der "Letzte Profil-Besucher"-Block ist deaktiviert und wird anderen Benutzern nicht angezeit.

  1. zukzuk

    Regex-Frage zu Java

    Ist dann halt wohl ein Fall von "is' halt so, weil's in Java eben so is'". Danke, zukzuk
  2. zukzuk

    Regex-Frage zu Java

    Also das Problem habe ich jetzt gelöst mit: (?s) (Single-Line-Attribut). Damit matcht "." auch auf Newlines (soweit wie unter Perl). Ich verstehe aber nicht, warum man bei Java die gesamte Regex von vorne bis hinten deklarieren muss. (also quasi immer "^...$")) bzw. warum Java das sonst implizit macht. Denn intuitiv hätte ich erwartet, dass egal welcher String auf ".*" matcht (sofern es denn ein String ist ;-)). Und das ist bei Java eben nicht der Fall, wenn der überprüfte String Zeilenumbrüche enthält.
  3. zukzuk

    Regex-Frage zu Java

    Hallo stefan.macke, was den Multilinemodus angeht: so was ähnliches hatte ich auch noch in den hintersten Ecken meines Hinterkopfes, aber ich weiß bei bestem Willen nicht mehr, wie man das dann in Java schreibt. Kurz googlen hat mir auch nicht geholfen. Ich bin übrigens Perl-Regexen gewohnt. Da matcht ".*" selbstverständlich auf einen String mit Zeilenumbrüchen (auf die erste Zeile ;-). Offenbar setzt Java irgendwelche "Anchors" um die Regexen, also sowas wie "\A.*\Z" bei Perl. Jetzt muss mir nur noch jemand erklären, wie konkret man den Multiline-Modus bei Java anschaltet, dann probiere ich weiter ;-).
  4. zukzuk

    Regex-Frage zu Java

    Also von wegen Codequalität: das ist mein allererster Gehversuch in Java. Ich versuche da auch kein fertiges Produkt auszuliefern, sondern ich möchte etwas bestimmtes nachprüfen. Dass der Regex-Match bei leerem String "True" zurück gibt, finde ich nicht so interessant, da ".*" für "beliebig viele Zeichen" steht (also auch gar keins). Was ich nicht verstehe, ist, warum er "False" zurück gibt, wenn ein Newline-Character im überprüften String enthalten ist. Also bspw. "Foo\nBar" matcht nicht auf ".*" (zumindest in Java!).
  5. zukzuk

    Regex-Frage zu Java

    Anders gefragt: Was muss in <string> stehen, so dass <string>.matches(".*") false zurückliefert? (weil das passiert mir gerade :-). Edit: Nach nochmaliger Betrachtung hat sich herausgestellt, dass <string> keinen Zeilenumbruch enthalten darf, damit dieser Regex matcht. Wie formuliere ich den Regex denn in Java so, so dass es keinen Unterschied macht, ob Zeilenumbrüche oder sonstiger Whitespace da stehen? Ich möchte einfach, dass der Regex-Match auf ".*" matcht, egal wie viele Zeilenumbrüche in dem überprüften String stehen.
  6. zukzuk

    Regex-Frage zu Java

    Hallo, ich habe folgende Frage zu Regexen in Java. Das Problem ist, dass mein Regex-Match immer fehlschlägt (= false): String str = ".*"; if (result.matches(str)) { JOptionPane.showMessageDialog(null, "gebe Falsch zurück (Regex matcht!)", "Test", JOptionPane.OK_CANCEL_OPTION); return false; } else { JOptionPane.showMessageDialog(null, "gebe Richtig zurück (Regex matcht nicht!)", "Test", JOptionPane.OK_CANCEL_OPTION); return true; } Ein trivialer Match mit "Fooo".matches(".*") funktioniert dagegen. Evtl. ist das ein Unicode-Problem, da in dem String "kaputte" Umlaute auftauchen? (umgebender Code s. u.). Danke für jede Hilfe. zukzuk Mein umgebender Code: private boolean pmtu_success(String ip, int size) throws IOException { boolean isWindows = System.getProperty("os.name").toLowerCase().contains("win"); ProcessBuilder processBuilder; if (isWindows) { processBuilder = new ProcessBuilder("ping", "-f", "-n", "1", "-l", "" + size, ip); } else { processBuilder = new ProcessBuilder("ping", "-c", "1", "-s", "" + size, "-M", "do" + ip); } Process proc; proc = processBuilder.start(); BufferedReader reader = new BufferedReader(new InputStreamReader(proc.getInputStream())); StringBuilder builder = new StringBuilder(); String line = null; try { while ( (line = reader.readLine()) != null) { builder.append(line); builder.append(System.getProperty("line.separator")); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } String result = builder.toString(); JOptionPane.showMessageDialog(null, result, "Test", JOptionPane.OK_CANCEL_OPTION); String str = ".*"; if (result.matches(str)) { JOptionPane.showMessageDialog(null, "gebe Falsch zurück (Regex matcht!)", "Test", JOptionPane.OK_CANCEL_OPTION); return false; } else { JOptionPane.showMessageDialog(null, "gebe Richtig zurück (Regex matcht nicht!)", "Test", JOptionPane.OK_CANCEL_OPTION); return true; } }
  7. zukzuk

    Path MTU Discovery

    Hallo zusammen, ich suche nach einer (wenn möglich natürlich bereits fertigen ;-) Lösung, um eine Path MTU Discovery zu einer bestimmten IP-Adresse mittels Java durchzuführen. Könnte mich da evtl. jemand in die richtige Richtung schubsen? https://en.wikipedia.org/wiki/Path_MTU_Discovery Danke im Voraus, zukzuk
  8. Also Google Maps wird doch IIRC per Iframe direkt in HTML eingebunden, oder? Was ich vorgehabt hätte (wenn ich das Vorhaben denn wirklich noch in dieser Form umsetzen würde), wäre, einen HTTP-Request per Javascript zu machen (Ajax), da ich ja die Zeit messen möchte, die dieser benötigt. Und da gibt es m. E. schon Einschränkungen: https://www.google.de/?#q=xmlhttprequest+same+origin+policy Aber soweit ich beim Überfliegen gesehen habe, kann man da wohl "drumrumarbeiten". Dass mit ICMP Ping ein Echo Request gemeint ist, sollte eigentlich klar sein ;-). Dass ich den grundsätzlichen Ablauf nicht hinterfragen möchte, da dieser vorgegeben ist, hatte ich auch schon geschrieben. Mir ist auch klar, dass Netzwerkprobleme vielschichtig sein können, aber trotzdem danke für deine Ausführungen.
  9. Jupp, diesen Workaround hatte ich als Möglichkeit im Eingangspost auch schon erwähnt, obwohl meine Idee eben ein HTTP-Request auf eine leere Datei war. Kann Javascript eigentlich einen HTTP-Request auf eine andere (Sub-)Domain als die, von der der JS-Code geladen wurde, durchführen? Wenn nein, müsste man die Test-Webseite auf derselben Domain bzw. IP-Adresse laufen lassen, die "getestet" werden soll, oder alternativ mit irgendwelchen Redirect-Konstrukten arbeiten, die das Ergebnis weiter verfälschen. Aber Ich denke schon, dass die Anforderungen ICMP-Ping, TCP- und UDP-Request auf bestimmte IPs und Path MTU Discovery (ICMP) zu bestimmter IP fix vorgegeben sind und daran nichts zu rütteln ist.
  10. Das ist natürlich richtig. Wenn der Seitenaufruf nicht klappt, weiß man aber auch gleich, dass das Netz "ganz" weg ist (fragt sich dann nur welches ^^) ;-). Zudem muss ich noch etwas relativieren, es geht wohl auch darum, die Voraussetzungen für ein bestimmtes Vorhaben abzuklären (welches, ist mir nicht ganz klar), für das eben 2 Bedingungen gegeben sein müssen müssen: a: Ping zu bestimmter Adresse muss klappen b: TCP- bzw. UDP-Verbindung zu bestimmter Adresse/Port müssen klappen Außerdem soll die maximale MTU zu einer bestimmten IP ermittelt werden (nicht die im Betriebssystem eingestellte, sondern die tatsächlich mögliche, also Ermittlung per ICMP) Die Vorgehensweise als solche will ich auch gar nicht hinterfragen, da mir der zugrundeliegene Geschäftsprozess auch gar nicht bekannt ist. Gewünscht ist soweit ich verstehe eben eine Lösung nicht mit mehreren Tools, sondern mit einem einzigen. Vielleicht hat ja auch jemand einen Tipp für ein Netzwerkanalysetool, das das einigermaßen hübsch kann. Idealerweise sollte dieses natürlich auch für mehrere Plattformen existieren. Meine Erfahrung mit derartigen Tools beschränkt sich auf die allg. verfügbaren Kommandozeilentools unter Linux. Sonst dürfte des Rätsels Lösung vmtl. die Erstellung einer eigenen Java-Applikation o. ä. sein, die das macht. Ist dann halt keine Browser-App mehr (Java-Plugin benutzt man ja nicht mehr). Naja, vielleicht sollte ich bevor der Thread hier noch ausartet auch einfach erst mal abwarten, bis ich mit den Leuten vor Ort gequatscht habe ;-).
  11. Also "überwachen" ist das falsche Wort. Kunde x hat irgendwelche Netzwerkprobleme, jetzt soll er unter Anleitung des Supports auf die Seite gehen, damit man idealerweise sehen kann, auf welcher Ebene das Problem liegt. Wenn aber jemand eine Idee hat, welche Third Party Software die o. g. Anforderungen erfüllt und evtl. noch irgendwie schön darstellen kann, wäre das natürlich auch eine Option, die ich dem AG gerne nahebringen werde :-). Achso, ping unter Anleitung ist keine Lösung bzw. von dieser Lösung will man wohl gerade wegkommen ;-). Sollte also schon etwas komfortabler sein. Wie die TCP/UDP Verbindungen derzeit getestet werden, weiß ich nicht. Evtl. mit telnet oder netcat ... Auf jeden Fall vmtl. mit irgendwelchen Kommandozeilentools. Und es sollte halt schon ein Tool sein, das "alles" was in den Anforderungen im 1. Post steht abdecken kann.
  12. Ok, dass das in dieser Form nicht mit einer Webanwendung im Browser möglich ist, war auch meine Einschätzung. Danke dafür.
  13. Also wenn ich von Client spreche, spreche ich grundsätzlich von der Seite, auf der die angedachte Browseranwendung ausgeführt wird. Das ist also der Rechner, auf dem das Javascript ausgeführt wird (zwar wird das natürlich auch erstmal vom Server geladen, aber eben dann lokal im Browser ausgeführt). Bei Server spreche ich grundsätzlich von der Gegenstelle für die Requests, die vom Client-Browser durchführt werden. TLDR: Client = Browser Server = Gegenstelle des Clients Den von dir nochmal beschriebenen Weg habe ich ja schon geprüft, das Problem ist eben, dass in die falsche Richtung analysiert wird (nämlich vom Server zum Client anstatt andersherum). Den Grund warum es in die andere Richtung gehen muss, hatte ich ja einige Posts über dir nochmal beschrieben: - die Verbindungen müssen vom Client zum Server aus aufgebaut werden, nicht anders herum. Es sollen Netzwerkprobleme analysiert werden, die vom Client zum Server hin auftreten Oder reden wir aneinander vorbei? Edit: Ich versuch's nochmal anders auszudrücken: Rechner A = Client Rechner B = Server Jetzt ist bspw. interessant, ob Rechner A eine Verbindung zu einem bestimmten Port von Rechner B herstellen kann. Die Gegenrichtung interessiert dabei nicht. Auch wenn man die Begrifflichkeiten Server/Client austauscht, ändert sich daran nichts. Auf Rechner B kann beliebige Software ausgeführt werden, auf Rechner A soll lediglich eine Browseranwendung (Javascript) laufen. (was, so vermute ich, nicht geht, wenn alle Anforderungen erfüllt werden sollen)
  14. Na, der Server ist eben die Gegenstelle für die Requests des Clients. Etwa lauscht er auf einem bestimmten Port auf TCP- oder UDP-Anfragen und gibt ein "Ok" zurück, wenn eine Verbindung aufgebaut wurde. Bzw. bei den ICMP-Requests antwortet er halt (gut, dafür muss man natürlich keinen Code selbst produzieren, nichtsdestotrotz ist es doch eine Server-Anwendung). Mit Javascript auf native Anwendungen zuzugreifen geht übrigens IIRC auch nicht (aus Sicherheitsgründen). Oder verstehst du die Anforderung anders? Es geht um Kunden (also die Clientseite), die Probleme haben, bestimmte Verbindungen zum ISP herzustellen. Und dann muss eben in Richtung Client -> Server analysiert werden, was das Problem sein könnte, nicht andersherum.
  15. Vielleicht nochmal zur Klarstellung die Eckpunkte auf die es denke ich ankommt: - der Client ist eine Blackbox, deren Konfiguration nicht geändert werden soll. Lediglich ein herkömmlicher Internetbrowser kann vorausgesetzt werden - die Verbindungen müssen vom Client zum Server aus aufgebaut werden, nicht anders herum. Es sollen Netzwerkprobleme analysiert werden, die vom Client zum Server hin auftreten Ich vermute, dass man da mit einer Browseranwendung nicht weiterkommt (außer mit den im 1. Post erwähnten Einschränkungen), sondern schon zu härteren Geschützen greifen muss, sprich, ein Binary zu produzieren, das auf dem Client dann halt ausgeführt werden muss. Aber vielleicht gibt's da ja auch was Fertiges ... Bin mir aber wie gesagt noch nicht zu 100% sicher, ob ich damit richtig liege. Evtl. geht's ja mit Flash? (0 Erfahrung) Aber Flash ist ja sowieso "out".

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...