ts2 status abfrage summieren

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • ts2 status abfrage summieren

    Hallo zusammen ich bins mal wieder :)

    Habe da mal eine frage. Undzwar ist es möglich dieses script so um zu bauen das er mehrere instanzen auslesen kann in einer abfrage?

    Hier mal das script

    Quellcode

    1. `// INSTANZ 1
    2. $host1 = "meineip";
    3. $qport1 = "3333";
    4. // INSTANZ 2
    5. $host2 = "meineip";
    6. $qport2 = "4444";


    Quellcode

    1. // CYTS INCLUDIREN
    2. include("config.php");
    3. include("cyts.class.php");
    4. echo "<b>Instanz 1</b>";echo "<br />";
    5. $ts = new cyts();
    6. $ts->connect($host1, $qport1);
    7. $data = $ts->info_globalInfo();
    8. echo "Total Users Online: " . $data["total_users_online"] . "<br>\n";
    9. echo "Total Slots: " . $data["total_users_maximal"] . "<br>\n";
    10. echo "Instance Uptime: " . $data["total_server_uptime"] . "<br>\n";
    11. echo "Total Subservers: " . $data["total_servers"] . "<br>\n";
    12. echo "Traffic In: " . round($data["total_packetsreceived"] / 1024 / 1024 / 1024, 3) . " GB<br>\n";
    13. echo "Traffic Out: " . round($data["total_packetssend"] / 1024 / 1024 / 1024, 3) . " GB<br>\n";
    14. $ts->disconnect();
    Alles anzeigen




    Das Problem liegt dadrin das er so nur eine instanz ausliest. Wenn ich jetzt eine 2 auslesen möchte muss ich sozusagen quasi das script 2 mal in die datei posten und die connectvariabeln anpassen...

    ist es möglich das ganze ihrgendwie in ein arry zu machen so das er mit dem code alle instanzen abfragt? gibt da fast 23 instanzen oder so :)

    Besten dank schonmal im vorraus für eure Hilfe.

    lg
    Dragon
    Riek-Media.com - Webhosting riek-media.com
  • Hey,

    du baust einen array für deine Daten:

    Quellcode

    1. <?php
    2. include("config.php");
    3. include("cyts.class.php");
    4. $server['"server1"]["host"] = "hostip1";
    5. $server["server1"]["qport"] = 333;
    6. $server["server2"]["host"] = "hostip2";
    7. $server["server2"]["qport"] = 444;
    8. ?>
    Alles anzeigen

    Jetzt hast du in der Variable $server einen Multiblen Array. Einfach gesagt: Mehrere weitere Variablen. Diese kannst du z.B. mit foreach durchlaufen...

    Quellcode

    1. <?php
    2. foreach($server as $key => $row)
    3. {
    4. //Hier dein Script:
    5. $host = $row["host"];
    6. $qport = $row["qport"];
    7. $data = $ts->($host, $qport) // und ab hier kommt dein bekanntest PHP-Script rein
    8. }
    9. ?>
    Alles anzeigen


    foreach (für jedes Element) liest dir die Daten aus deinem Oben multiblen Array aus. Für jeden gefunden Datendurchsatz läuft die Schleife (alles was zwischen { und } steht) durch. In diesem Beispiel läuft die Schleife also zweimal durch, weil wir zwei Server in unserem Array oben eingetragen haben...
    Diese Daten schreibt foreach dann temporär in die Variable $row. $row ist wiederum auch ein Array, welcher dann deine IP und deinen Queryport enthält. Deswegen greifst du mit $row["host"] auch darauf zu.
    In $key würde der Schlüssel stehen. Den Brauchen wir in deinem Fall aber nicht. Der Schlüssel ist der Variablenname im Array. Hier z.B. "server1 und "server2...

    Willst du wissen wie dein Array aufgebaut ist und/oder mal einen Array testweise ausgeben, kannst du das mit var_dump($array) oder print_r($array).

    Quellcode

    1. <?php
    2. $array = array(1 => "ich", 2 => "bin", 3 => "ein", 4 => "array", "key" => "row");
    3. print "<pre>";
    4. var_dump($array); //oder eben print_r($array); an dieser stelle
    5. print "</pre>";


    Gruß,
    Dominic
    My lovely mister singing club...
  • besten dank schonmal dominic

    kannst du mal drüber schauen ob ich so in die richtige richtung gehe?


    Quellcode

    1. <?php
    2. include("cyts.class.php");
    3. $server["server1"]["host"] = "MEINEIP";
    4. $server["server1"]["qport"] = 0000;
    5. $server["server2"]["host"] = "MEINEIP";
    6. $server["server2"]["qport"] = 0000;
    7. $server["server3"]["host"] = "MEINEIP";
    8. $server["server3"]["qport"] = 0000;
    9. $server["server4"]["host"] = "MEINEIP";
    10. $server["server4"]["qport"] = 0000;
    11. $server["server5"]["host"] = "MEINEIP";
    12. $server["server5"]["qport"] = 0000;
    13. $server["server6"]["host"] = "MEINEIP";
    14. $server["server6"]["qport"] = 0000;
    15. $server["server7"]["host"] = "MEINEIP";
    16. $server["server7"]["qport"] = 0000;
    17. foreach($server as $key => $row)
    18. {
    19. //Hier dein Script:
    20. $host = $row["host"];
    21. $qport = $row["qport"];
    22. $ts = new cyts();
    23. $data = $ts->connect($host, $qport); // und ab hier kommt dein bekanntest PHP-Script rein
    24. }
    25. $data = $ts->info_globalInfo();
    26. echo "Total Users Online: " . $data["total_users_online"] . "<br>\n";
    27. echo "Total Slots: " . $data["total_users_maximal"] . "<br>\n";
    28. echo "Instance Uptime: " . $data["total_server_uptime"] . "<br>\n";
    29. echo "Total Subservers: " . $data["total_servers"] . "<br>\n";
    30. echo "Traffic In: " . round($data["total_packetsreceived"] / 1024 / 1024 / 1024, 3) . " GB<br>\n";
    31. echo "Traffic Out: " . round($data["total_packetssend"] / 1024 / 1024 / 1024, 3) . " GB<br>\n";
    32. $ts->disconnect();
    33. ?>
    Alles anzeigen



    Ihrgendwie scheine ich aber was falsch gemacht zu haben :(
    Riek-Media.com - Webhosting riek-media.com

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Dragon4048 ()

  • LEUTE

    ich möchte nur eine ausgabe und keine 20 so hätte ich das script doch so lassen können wie es war... ich möchte nicht das dort steht

    Total Slots: 50

    Total Slots: 60

    Total Slots: 70

    Total Slots: 20

    Total Slots: 40


    Sondern ich möchte das dort steht

    Total Slots: 240

    sprich eine Ausgabe mit allen werten zusammengezählt und nicht 20 ausgaben mit den jeweiligen werten

    Das ist das was ich versuche hin zu kriegen
    Riek-Media.com - Webhosting riek-media.com
  • Quellcode

    1. <?php
    2. include("cyts.class.php");
    3. $server["server1"]["host"] = "MEINEIP"
    4. $server["server1"]["qport"] = 0000;
    5. $server["server2"]["host"] = "MEINEIP";
    6. $server["server2"]["qport"] = 0000;
    7. $server["server3"]["host"] = "MEINEIP";
    8. $server["server3"]["qport"] = 0000;
    9. $server["server4"]["host"] = "MEINEIP";
    10. $server["server4"]["qport"] = 0000;
    11. $server["server5"]["host"] = "MEINEIP";
    12. $server["server5"]["qport"] = 0000;
    13. $server["server6"]["host"] = "MEINEIP";
    14. $server["server6"]["qport"] = 0000;
    15. $server["server7"]["host"] = "MEINEIP";
    16. $server["server7"]["qport"] = 0000;
    17. $output = array();
    18. $output["total_users_online"] = 0;
    19. $output["total_users_maximal"] = 0;
    20. //und die restlichen variablen mit 0 vordefinieren...
    21. foreach($server as $key => $row)
    22. {
    23. //Hier dein Script:
    24. $host = $row["host"];
    25. $qport = $row["qport"];
    26. $ts = new cyts();
    27. $data = $ts->info_globalInfo();
    28. //alles wird in $output gespeichert, bei jedem durchlauf wird der wert, vom aktuellem server dazugezählt
    29. $output['total_users_online'] = $output['total_users_online'] + $data['total_users_online'];
    30. $output["total_users_maximal"] = $output["total_users_maximal"] + $data["total_users_maximal"];
    31. $output["total_users_maximal"] = $output["total_users_maximal"];
    32. //und so weiter...
    33. $ts->disconnect();
    34. }
    35. echo "Total Users Online: " . $output["total_users_online"];
    36. //und so weiter...
    37. ?>
    Alles anzeigen


    Ich bin der Meinung das du darauf hättest kommen können, wenn du meinen Post anständig gelesen hättest und dich dazu weiter schlau gemacht hättest, aber gut...
    My lovely mister singing club...