Simone Kurth: Online Abfrage

Guten Morgen,

kennt jemand eine Möglichkeit mit JavaScript oder Java zu prüfen,
ob der User gerade online oder offline ist??

Gruß S. Kurth

  1. Morgen,

    kennt jemand eine Möglichkeit mit JavaScript oder Java zu prüfen,
    ob der User gerade online oder offline ist??

    Welcher User?
    Ich frage mal so überspitzt, denn es ist wirklich nicht so klar, was Du genau möchtest.
    Willst Du wissen, ob ein Besucher Deiner Seiten noch immer "da" ist?
    Oder willst Du wissen, ob eine bestimmte Person noch immer ins Internet eingewählt ist? (wäre aber nicht nett, oder?)

    Grüße, Vedat

    1. Morgen,

      kennt jemand eine Möglichkeit mit JavaScript oder Java zu prüfen,
      ob der User gerade online oder offline ist??

      Welcher User?
      Ich frage mal so überspitzt, denn es ist wirklich nicht so klar, was Du genau möchtest.
      Willst Du wissen, ob ein Besucher Deiner Seiten noch immer "da" ist?
      Oder willst Du wissen, ob eine bestimmte Person noch immer ins Internet eingewählt ist? (wäre aber nicht nett, oder?)

      Grüße, Vedat

      genau ich will wissen, ob die Person, die ein Applet
      (das als software heruntergeladen wird und dann ja auch offline
      gestartet werden könnten und beim user installiert ist)
      starten will  mit dem Internet verbunden ist ->
      wenn nicht ->darf das applet nicht gestartet werden.

      Gruß Simone

  2. Guten Morgen,

    kennt jemand eine Möglichkeit mit JavaScript oder Java zu prüfen,
    ob der User gerade online oder offline ist??

    Gruß S. Kurth

    Ich glaube nicht, daß sowas ohne Tricks möglich ist.

    Eine irgendwie geartete Funktion is_online, die nur ja oder nein zurückgibt, kann es nicht geben. Dazu müßte man nämlich einen Host im Internet anpingen - nein, eigentlich müßte man viele Hosts im Internet anpingen, falls einer mal down ist. Nach der Anwesenheit und Aktivität des DFÜ-Netzwerkes kann man nicht gehen (Internetzugänge über Standleitungen nutzen das nicht, und AOL auch nicht), und auch nicht, ob irgendeine IP-Adresse vorhanden ist außer 127.0.0.1 (localhost).

    Der Grund für diese Unmöglichkeit: Javascript oder Java müßte dafür Zugriff auf das System kriegen. Und das würde den Mißbrauch erleichtern. man könnte so z.B. massenhaft Ping gegen einen Server schicken, der dann nur noch mit dem Beantworten ausgelastet wäre (Denial of Service). Sicher keine gute Idee.

    Mit Java könnte das sogar gehen, aber dann kommt beim Laden des Applets eine Sicherheitsabfrage, ob man den Zugriff gestatten will. Und solche Fragen wird man besser immer mit Nein beantworten, wenn man sie nicht erwartet hat.

    Der oben angesprochene Trick würde darin bestehen, daß Javascript eine Seite eines Internetservers aufruft, auf der der User dann irgendwas anklicken kann - also ist er online. Klickt er nichts an, ist er offline.

    Das ist aber genauso unzuverlässig wie die automatische Feststellung.

    - Sven Rautenberg

    1. vielen Dank,
      habe inzwischen herausgefunden, das es im navigator object in javascript
      eine Abfrage gibt :
      navigator.OnLine ->geht aber leider nur für IE 4,
      also muß man wohl doch tricksen

      Gruß Simone

  3. hallo S. Kurth

    kennt jemand eine Möglichkeit mit JavaScript oder Java zu prüfen,
    ob der User gerade online oder offline ist??

    ungefaehr so:

    function getConnectionTyp()
     {if (self.location.href.toLowerCase().indexOf("http://") >= 0) {return "global"};  //online (http)
      if (self.location.href.toLowerCase().indexOf("https://") >= 0) {return "global"};  //online (secure http)
      if (self.location.href.toLowerCase().indexOf("www.") >= 0) {return "global"};   //online
      if (self.location.href.toLowerCase().indexOf("a:") >= 0) {return "floppydisk"};  //offline(floppy)
      if (self.location.href.toLowerCase().indexOf("file:///a") >= 0) {return "floppydisk"}; //offline(floppy)
      if (self.location.href.toLowerCase().indexOf("c:") >= 0) {return "harddrive"};  //offline(drive c)
      if (self.location.href.toLowerCase().indexOf("file:///c") >= 0) {return "harddrive"}; //offline(drive c)
      return "lokal"; //auf alle faelle offline - lokales netzwerk oder ein anderes nicht abgeprueftes laufwerk
     }     //diese loesung gilt fuer eine bekannte umgebung - in Deinem fall gelten die ersten 3zeilen

    by(t)e by(t)e - peterS. - pseliger@gmx.net

    1. Hallo Peter,

      function getConnectionTyp()

      Dein Lösungsvorschlag krankt an der gleichen Schwäche wie alle anderen, die bisher aufgetaucht sind: Damit stellst Du nur fest, woher die im Browser angezeigte Seite geladen wurde. Das ist IMHO nicht das, was Simone wissen will - ich denke, sie will vielmehr feststellen, ob die Online-Verbindung zum Internet noch "steht" oder ob der Anwender zwischenzeitlich die Verbindung (z.B. DFÜ-Netzwerk) getrennt hat.
      Hierfür gibt es - wenn ich die bisherigen Beiträge und mein eigenes Wissen kurz zusammenfasse - in Javascript keine Lösung.

      Eine behelfsmäßige Lösung wurde hier vor ein paar Tagen angeboten - ich weiß aber nicht mehr, von wem. Sie beruht darauf, eine Graphik im Dokument zu referenzieren, die irgendwo im Internet rumgammelt, und dieser Graphik einen ONLOAD- und einen ONERROR-Handler zu verpassen. Prima Idee, hilft aber leider nur so lange, bis der Browser die Graphik mal im Cache hat. Kleiner Schönheitsfehler obendrein: Beim Versuch, diese Graphik zu reloaden, schlägt eventuell das DFÜ-Netzwerk wieder zu und will die Verbindung wieder herstellen.

      Fazit: Geht wahrscheinlich nicht. Shit happens.

      Gruß,

      Martin