|
Socket Verbindungen herstellen und nutzen - Teamspeak
Mit Hilfe von Socket Verbindungen kann man Kontakt zu anderen Programmen
aufnehmen, die nicht wie Webserver auf Port 80 laufen. Hier erläutere
ich wie man zum Beispiel zu einem globalen Teamspeak Server connected und
Befehle an diesen sendet. Dies kann man auch dafür nutzen um
irgendwelche eggdrops zu steuern oder andere Programme anzusteuern.
<?php # # $server_ip = IP Adresse des Teamspeak Servers # $server_query = Query Port des Teamspeak Servers, dieser ist nicht # gleich dem Port des Teamspeaks, Standard ist 51234 # $server_port = Port des Teamspeak Servers - da wo Ihr auch rein # connected
function getServerInfo($server_ip, $server_query, $server_port) { $connection = fsockopen ("$server_ip", $server_query, &$errno, &$errstr, 1); if ($connection) { fputs($connection, "sel ".$server_port."\n"); fputs($connection, "si\n"); fputs($connection, "quit\n"); while(!feof($connection)) { $out .= fgets($connection, 1024); }
$out = trim($out); $out = substr($out, 8, -2); $out = trim($out);
$server_infodata = explode("server_", $out);
for($x=1;$x<count($server_infodata);$x++) { $info = explode("=", $server_infodata[$x]); $server["$info[0]"] = str_replace("'", "`", $info[1]); }
fclose($connection); } return $server; }
$server = getServerInfo("192.168.0.1", "51234", "9999"); print_r($server); ?>
|
Diese Funktion öffnet eine Socketverbindung zu einem Teamspeak
Server und wählt einen laufenden Teamspeakserver aus. Es werden
Befehle an den Server geschickt, die Antwort gelesen und in einem
Array zurückgegeben.
Hätte man noch den Befehl pl an den Teamspeakserver gesendet,
dann hätte man die Liste der Leute erhalten, die aktuell auf dem
Teamspeakserver verbunden sind. pl ist ein Befehl von Teamspeak und
bedeutet "playerlist".
Damit es funktioniert müsst Ihr natürlich eine
richtige Server IP mit dem Queryport und dem Teamspeak Port zur Hand haben.
Bei 90% der Teamspeakserver ist der Queryport allerdings auf Standard.
|