Teamspeak Server auslesen

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

  • Teamspeak Server auslesen

    Hallo,

    es gibt ja einige Teamspeak Scripte im Netzt, leider sind viele nicht mehr auf dem neusten Stand was zum Beispiel valides HTML angeht.

    Ich wollte nun versuchen ein eigenes Script zu schreiben, welches unseren TS Server ausließt.

    Leider finde ich es immer sehr schwierig durch fremde Komplexe Scripte durchzufinden.

    Vielleicht hat von Euch jemand Erfahrung wie man einen TS Server ausließt.

    Ich hatte gedacht, das es so funktioniert:

    PHP-Code:
    <?php

    $connection 
    fsockopen ("85.114.140.22""51234", &$errno, &$errstr1);

    if (!
    $connection
    {
       echo 
    "Cannot connect: ($errno)-$errstr<br>";

    else 
    {
       
    $channeldata fgets($connection4096); 
       echo 
    $channeldata;
    }
    ?>
    Leider bekomme ich da als Ausgabe nur [TS]. Also die Verbindung ist schonmal da, aber leider kommen keine Daten :-(

  • #2
    du liest ja auch nur die ersten 4096 bytes.
    Freedom is a state of mind. Not a state in which we live.

    troxdev.ch | animefieber

    Kommentar


    • #3
      Hm stimmt schon, habe mir jetzt nochmal die Beschreibung von fgets durchgelesen und es so versucht:
      PHP-Code:
      $connection fsockopen ("85.114.140.22""51234", &$errno, &$errstr1);

      if (!
      $connection
      {
         echo 
      "Cannot connect: ($errno)-$errstr<br>";

      else 
      {
         while (!
      feof($connection)) 
         {
            
      $buffer fgets($connection4096);
            echo 
      $buffer.'<br />';
         }

      Das funktioniert aber auch nicht, das Script läuft 300sec (Laufzeitbegrenzung) und gibt mir dann wieder nur [TS] aus und die Fehlemeldung:
      Fatal error: Maximum execution time of 300 seconds exceeded in C:\Inetpub\vhosts\scheissplesk.de\httpdocs\statscod4\new\test.php on line 12

      Dann habe ich mir überlegt, er greift da ja nicht direkt auf eine Datei zu sondern auf eine Art Stream oder?

      Also habe beschränke ich mal das ganze auf anderer Art:

      PHP-Code:

      $i 
      '0';
      $connection fsockopen ("85.114.140.22""51234", &$errno, &$errstr1);

      if (!
      $connection
      {
         echo 
      "Cannot connect: ($errno)-$errstr<br>";

      else 
      {
         while (
      $i <= '2'
         {
            
      $buffer fgets($connection4096);
            echo 
      $buffer.'<br />';
            
      $i++;
         }

      Komsicherweise läuft er hier auch bis zum Time Limit, obwohl er doch das ganze nur 3 mal durchlaufen sollte, und gibt wieder nur [TS] aus :-(

      Kommentar


      • #4
        Wenn du dich verbindest, schickt der Server dir erstmal [TS]. Danach musst du dem Server einen Befehl schicken, woraufhin er dir wieder eine Antwort schickt.

        Eine Beschreibung der Befehle findest du in der Teamspeak-Anleitung (Installationsordner\manual\tcpqueryfunction1.htm).
        hopka.net!

        Kommentar


        • #5
          Vielen dank für die Info, für alle die hier danach suchen, hier ein Lösungsansatz:

          PHP-Code:
          $connection fsockopen ("85.114.140.22""51234", &$errno, &$errstr1); //IP und TCP Port

          if (!$connection
          {
             echo 
          "Cannot connect: ($errno)-$errstr<br>";

          else 
          {
             
          $cmd "cl 8767\nquit\n"//cl für channellist und pl für Playerlist
             
          $error fputs($connection,$cmdstrlen($cmd));

              if (!
          $error
              {
                echo 
          "Cannot read Data!<br>";
              } 
              else 
              {
                
              while(
          $channeldata fgets($connection4096)) 
              {
             echo 
          $channeldata.'<br />';
              }
                
             
          fclose($connection);
             
             }

          Kommentar

          Lädt...
          X