Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Abfrage Internet Verbindung in Plugin

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] - √ - Abfrage Internet Verbindung in Plugin

    Hallo zusammen,

    Ich bin für 8 lange Tage vom DSL abgeschnitten und meine Plugins für Webabfragen laufen permanent in einen Timeout. Ich habe mir jetzt erstmal mit einem Return in der ersten Zeile Quick&Dirty geholfen.
    Das geht aber bestimmt auch eleganter...

    Gibt es eine schlaue Variante, wie ich in einem Plugin die Verfügbarkeit der Internetverbindung bzw. die Erreichbarkeit einer URL abfangen kann? Hierbei sollte das Plugin bereits nach ca. 1 Sekunde ohne Antwort abgebrochen werden.

    Hat jemand von Euch ein Codeschnipsel für mich?

    Danke
    Sascha

    #2
    Perl ping script - Ubuntu Forums

    Google: perl ping test

    Viel Spaß beim testen und berichte!

    Grüße
    Umgezogen? Ja! ... Fertig? Nein!
    Baustelle 2.0 !

    Kommentar


      #3
      Oder einfach den timeout bei allen Plugins runtersetzen, Default ist AFAIR 10s..

      Bei LWP::Simple weiss ich ned ob das geht aber mit LWP::UserAgent gibts timeout und beim TCP-Socket natürlich auch.

      In simpelst allerdings und garantiert ohne memleak :
      curl --connect-timeout 1 www.gibessichernischt.hurz
      -> wenn der Rückgabewert > 0 ist, wars nix..

      Makki
      EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
      -> Bitte KEINE PNs!

      Kommentar


        #4
        Zitat von makki Beitrag anzeigen
        In simpelst allerdings und garantiert ohne memleak :
        curl --connect-timeout 1 www.gibessichernischt.hurz
        -> wenn der Rückgabewert > 0 ist, wars nix..
        Leider kommt dabei nur die Rückmeldung "Can't modify constant item in postdecement"
        Wenn ich 'Ping $url' anspreche kommt ohne Internetverbindung kein Rückgabewert. Mit Internetverbindung kann ich es aktuell nicht testen.

        Habt ihr sonst noch Ideen?
        Wie lautet die korrekte Syntax von der curl Variante?

        Auf LWP::UserAgent wollte ich eigentlich nicht umstellen, da auch alle Plugins im SVN auf LWP::Simple basieren.

        Ich habe auch schon folgendes ausprobiert:
        http://www.hidemail.de/blog/lwp-simple-timeout.shtml
        Das Plugin läuft trotzdem 10 Sekunden.

        Danke
        Sascha

        Kommentar


          #5
          Hallo zusammen,

          ich antworte mir jetzt mal selber, da ich die Lösung gefunden habe:
          Code:
          use Net::Ping;
          my $p = Net::Ping->new();
          if (! $p->ping($url,$URLtimeout)) {			# Abfrage ob URL erreichbar
          	return("URL nicht erreichbar: $url");
          }
          Trotzdem Danke fürs Suchen und die Geduld ;-)
          Sascha

          Kommentar


            #6
            Hallo
            Ich habe es so gemacht.
            Code:
              my $url ="http://www.xxxxxxxx.de";
              my $brs = LWP::UserAgent->new;
              my $req = HTTP::Request->new(GET => $url);
              #
              my $resp = $brs->request($req);
              if($resp->is_success()) {
                  # print "Erfolg !";
              }else {
                  #print "Keine Antwort !";
                  return();
              }
              my $content;
              $content = $resp->content;
            Gruß NetFritz
            KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
            WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
            PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

            Kommentar


              #7
              Geschrieben aber nicht abgeschickt, der Vollständigkeit halber:

              Code:
              my $url = "www.google.de";
              if (system("curl --connect-timeout 2 $url")) {
              	return "curl failed, kein Netz?";
              } else {
              	return "Alles gut";
              }
              Makki
              EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
              -> Bitte KEINE PNs!

              Kommentar

              Lädt...
              X