Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Не работает rcon class

Статус пользователя miRror
сообщение 5.7.2014, 13:24
Сообщение #1


Стаж: 15 лет

Сообщений: 1151
Благодарностей: 1002
Полезность: 967

Меценат Меценат

Имеется у меня вот такой класс:
Код:
class rcon
{
private $fp, $challenge_number;
public function Connect($host, $port, $pass)
{
$this->host = $host;
$this->port = $port;
$this->pass = $pass;

$this->fp = @fsockopen("udp://".$this->host, $this->port);

return $this->fp ? $this->GetChallengeNumber() : false;
}

public function Disconnect()
{
return fclose($this->fp) ? true : false;
}

public function Command($command)
{
return $this->RconCommand("\xff\xff\xff\xffrcon $this->challenge_number \"$this->pass\" $command");
}

private function GetChallengeNumber()
{
$this->challenge_number = trim($this->RconCommand("\xff\xff\xff\xffchallenge rcon"));
if(empty($this->challenge_number))
return false;

$_challenge = explode(" ", $this->challenge_number);
$this->challenge_number = $_challenge["2"];

return $this->challenge_number;
}

private function RconCommand($command)
{
fputs($this->fp, $command, strlen($command));
$buffer = fread($this->fp, 1);
$status = socket_get_status($this->fp);
$buffer .= fread($this->fp, $status["unread_bytes"]);
$buffer = substr($buffer, 5);

return $buffer;
}
}

Вызывается так:
Код:
			if($this->rcon->Connect('ip', 'port', 'rcon_pass')
$result = $this->rcon->Command('команда');

$this->rcon->Disconnect();
echo $result;


Перестал в общем говоря работать, помогите найти ошибку)

Ответ всегда один:
Код:
Bad rcon_password.
\0\0


Пароль сразу говорю верный. Желательно допилить этот класс, не хочу использовать громоздкие.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Flesh
сообщение 12.7.2014, 11:20
Сообщение #2


Стаж: 17 лет

Сообщений: 319
Благодарностей: 168
Полезность: 776

Проверил. Класс в порядке.
Код:
<?php
include("rcon.php");

$rcon = new rcon;
if($rcon->Connect('192.168.1.1', '27015', '12345'))
$result = $rcon->Command('map de_aztec');

$rcon->Disconnect();
echo $result;
?>
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя miRror
сообщение 12.7.2014, 12:10
Сообщение #3


Стаж: 15 лет

Сообщений: 1151
Благодарностей: 1002
Полезность: 967

Меценат Меценат

Возможно и рабочий. Проблема таилась лично у меня в переменной:
php_flag magic_quotes_runtime off
Спасибо большое легенде.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 12.7.2014, 12:37
Сообщение #4


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

++
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: