Hi,
ich habe einen php Script mit dem ich Spielserver auslesen kann.
Ich habe bereits selbst versucht den selben script in autoit zu schreiben.
Jedoch klappt dies nie.
Hier mal der Php Script:
<?php
if(isset($_POST['submit'])){
$sn = "81.30.152.83";
@$ip = $_POST['ip'];
@$port = $_POST['port'];
@$favpic = $_POST['favpic'];
///////////////////////////////////////////////////////////////
@$host = $ip;
@$port = $port;
$timeout = 15;
$length = 2048;
$protocol = 'udp';
$magic = "\377\377\377\377";
$pattern = "/$magic" . "print\n/";
$pattern2 = "/$magic" . "statusResponse\n/";
$params = array();
$players = array();
isset($_GET['devmode']) ? error_reporting(E_ALL) : error_reporting(!E_WARNING);
if(!function_exists("socket_create"));
$socket = socket_create (AF_INET, SOCK_DGRAM, getprotobyname ($protocol));
if ($socket)
{
if (socket_set_nonblock ($socket))
{
$time = time();
$error = "";
while (!@socket_connect ($socket, $host, $port ))
{
$err = socket_last_error ($socket);
if ($err == 115 || $err == 114)
{
if ((time () - $time) >= $timeout)
{
socket_close ($socket);
}
sleep(1);
continue;
}
}
if( strlen($error) == 0 )
{
socket_write ($socket, $magic . "getstatus\n");
$read = array ($socket);
$out = "";
while (socket_select ($read, $write = NULL, $except = NULL, 1))
{
$out .= socket_read ($socket, $length, PHP_BINARY_READ);
}
if ($out == "")
socket_close ($socket);
$out = preg_replace ($pattern, "", $out);
$out = preg_replace ($pattern2, "", $out);
$all = explode( "\n", $out );
$params = explode( "\\", $all[0] );
array_shift( $params );
$temp = count($params);
for( $i = 0; $i < $temp; $i++ )
{
$params[ strtolower($params[$i]) ] = $params[++$i];
}
for( $i = 1; $i < count($all) - 1; $i++ )
{
$player = array();
$players[] = $player;
}
}
else
{
}
}
else
{
}
}
else
{
}
$hostname = $params['sv_hostname'];
if ($hostname == ""){
$hostname = "Offline";
}
$nc = str_replace("^1", "", $hostname);
$nc1 = str_replace("^2", "", $nc);
$nc2 = str_replace("^3", "", $nc1);
$nc3 = str_replace("^4", "", $nc2);
$nc4 = str_replace("^5", "", $nc3);
$nc5 = str_replace("^6", "", $nc4);
$nc6 = str_replace("^7", "", $nc5);
$nc7 = str_replace(" ", "", $nc6);
$nc8 = preg_replace(array("#[,./]#","#[^a-zA-Z0-9]#"),array("","-"),$nc7);
Den Autoit script den ich dazu versuchsweise geschreiben habe wurde gelöscht.
Freue mich auch eure Antworten