Proxy auf Erreichbarkeit prüfen!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Proxy auf Erreichbarkeit prüfen!

    Hallo,

    ich möchte Proxys prüfen ob diese noch erreichbar sind!
    Ich hab zu erst an das hier gedacht:
    PHP-Code:
    function CheckProxy($ip,$port,$timeout)

      
    $stime time();
      
    $arrReturn = array();
      
    $arrReturn[0] = $ip.':'.$port;
      if (!
    $err = @fsockopen($hostip$port$errno$errstr$timeout)):
        
    $arrReturn[1] = 0;
      else:
        
    $arrReturn[1] = 1;
        if (
    $err) @fclose($err); 
      endif;
      
    $etime time();
      
    $arrReturn[2] = $etime-$stime;  
      return 
    $arrReturn;
    }
    $arr CheckProxy("202.167.253.5","8080",5);
    print_r($arr); 
    Aber scheint quatsch zu sein, den der Timeout funktioniert nicht wie ich mir das vorgestellt habe!

    Gibts überhaupt eine Möglichkeit sowas in PHP richtig zu machen. Ich will nämlich eine Proxyliste regelmäßig überprüfen lassen. Hab mir mal ein Tool in Delphi geschrieben, da funktionierts wunderbar, aber ich hätte lieber ein Online-Lösung.

    Hat jemand ein Idee, ob man das was machen kann?

  • #2
    der Timeout funktioniert nicht wie ich mir das vorgestellt habe!
    Was meinst du damit??
    Wofür ist das @ da??
    Hast du error_reporting hochgedreht?
    Zuletzt geändert von combie; 06.02.2007, 13:36.
    Wir werden alle sterben

    Kommentar


    • #3
      ja das error_reporting ist an!

      naja, ich gebe als timeout 5 sekunden an, aber wenn 5 sekunden überschritten sind, bekomme ich trotzdem kein abbruch!

      das @ bedeutet, das keine ausgabe ausgegeben wird, falls da eine fehlermeldung auftritt!

      Kommentar


      • #4
        Wofür ist das @ da??
        Das war nicht wirklich eine Frage!!
        Sondern ein Wink mit einem Scheunentor (an dem ein ganzer Bauernhof hängt)........

        Dein Code ist fehlerhaft (ja, das habe ich geprüft)!!
        Und du unterdrückst Fehlermeldungen.... witzig!!
        Kommst du dir dabei nicht selber ein bisschen komisch vor??


        Ein winzige Änderung und das Ding tuts sofort!!
        Wir werden alle sterben

        Kommentar


        • #5
          Und welche Änderung wenn ich fragen darf?

          Ich hab mir das skript schnell aus einem schnippsel zusammen gebaut, und da war das @ ein überbleibsel. aber ob @ oder nicht, eine fehlermeldung kommt da eh nicht.

          Kommentar


          • #6
            Du willst mich verarschen...
            Wenn das bei hochgedrehtem Error_reporting keine Meldung wirft, fress ich einen Besen sammt Putzfrau!!

            CheckProxy($ip,$port,$timeout)
            //---
            fsockopen($hostip, $port, $errno, $errstr, $timeout)

            Einmal $ip und das anderes mal $hostip das wirft die Meldung!!!
            Wir werden alle sterben

            Kommentar


            • #7
              ei, ah ups! ich bin blind! aber ein fehler hab ich ne bekomm. merkwürdig!

              Aber so richtig funktionieren tuts wohl auch nicht. der sagt mir das ein proxy der im Browser nicht geht, erreichbar ist! mmhhh. oder muss ich noch nen header senden?

              Kommentar


              • #8
                Die Bewertung dieses Umstandes hängt wohl erst mal von der Definition von "geht im Browser nicht" ab.

                Ob der Browser selber erst gar keine Verbindung zum Proxy aufbauen kann, oder ob der Proxy dann, wenn der Browser sagt, "hole doch bitte mal die Ressource ABC für mich bei Server XYZ ab, und reiche sie mir dann weiter", erst nicht mehr mitspielen will - das sind ja zwei recht unterschiedliche Szenarien.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  ei, ah ups! ich bin blind! aber ein fehler hab ich ne bekomm. merkwürdig!
                  Ach, das verträgt sich aber nicht mit dem:
                  hochgedrehtem error_reporting

                  (mit eingebautem Fehler, zum selbertesten)



                  PHP-Code:
                  <?php
                  error_reporting
                  (E_ALL);
                  ini_set('display_errors'TRUE);

                  function 
                  CheckServer($host,$port,$timeout)
                  {
                    
                  $stime time();
                    
                  $arrReturn = array();
                    
                  $arrReturn[0] = $host.':'.$port;
                    if (!
                  $err fsockopen($host_falsch$port$errno$errstr$timeout)):
                      
                  $arrReturn[1] = 0;
                    else:
                      
                  $arrReturn[1] = 1;
                      if (
                  $errfclose($err);
                    endif;
                    
                  $etime time();
                    
                  $arrReturn[2] = $etime-$stime;
                    return 
                  $arrReturn;
                  }


                  /*
                  $arr = CheckServer("202.167.253.5",8080,5);
                  echo 'Check: '.var_export($arr,TRUE).'<br>';
                  */

                  $arr CheckServer("pop.gmx.de",110,5);
                  echo 
                  'Check: '.var_export($arr,TRUE).'<br>';

                  $arr CheckServer("smtp.gmx.de",25,5);
                  echo 
                  'Check: '.var_export($arr,TRUE).'<br>';

                  $arr CheckServer("www.google.de",80,5);
                  echo 
                  'Check: '.var_export($arr,TRUE).'<br>';

                  $arr CheckServer("www.php-resource.de",80,5);
                  echo 
                  'Check: '.var_export($arr,TRUE).'<br>';

                  ?>
                  Wir werden alle sterben

                  Kommentar

                  Lädt...
                  X