Teamspeak Server auslesen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #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 :-(

      Comment


      • #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!

        Comment


        • #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);
             
             }

          Comment

          Working...
          X