Добро пожаловать на форумы Боевого Народа (бывший форум Live.CNews.ru)!

ВАЖНЫЕ ТЕМЫ: FAQ по переезду и восстановлению учеток | Ошибки и глюки форума.
О проблемах с учетными записями писать СЮДА.
PHP RCON - Форумы Боевого Народа
IPB

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

 
Ответить в данную темуНачать новую тему
PHP RCON, Ищу php скрипт для уравления Remote Console
сообщение 6.11.2006, 19:30
Сообщение #1





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Столкнулся с одной проблемой. Камп-сервер с выделенкой, проведенной до роутера. Я администрирую сервер с bf2. Но не могу использовать bf2cc или какие-либо альтернативы, поскольку на роутере стоит запрет (ради безопасности) на порт 4717 (используемый RCON). Мейн админ сказал, что если я найду скрипт на php, позволяющий управлять консолью, то он поставит его на сайт и мне больше не придется грузить игру только для смены карты. Просто у моих коллег, правда по контре, стоят подобные скрипты и они легко управляют сервером с сайта.
Есть ли подобная система на bf2, или я обречен постоянно загружать ботву ради смены карты? :no:
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.11.2006, 20:05
Сообщение #2





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата(Sergio_DSHOST @ Понедельник, 6 Ноября 2006, 20:30:04) *
у моих коллег, правда по контре, стоят подобные скрипты и они легко управляют сервером с сайта
а уних ты взять скрипт не можешь?
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.11.2006, 20:08
Сообщение #3





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



у них контровские - я же написал.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 6.11.2006, 23:49
Сообщение #4





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата(Sergio_DSHOST @ Понедельник, 6 Ноября 2006, 19:30:04) *
Столкнулся с одной проблемой. Камп-сервер с выделенкой, проведенной до роутера. Я администрирую сервер с bf2. Но не могу использовать bf2cc или какие-либо альтернативы, поскольку на роутере стоит запрет (ради безопасности) на порт 4717 (используемый RCON). Мейн админ сказал, что если я найду скрипт на php, позволяющий управлять консолью, то он поставит его на сайт и мне больше не придется грузить игру только для смены карты. Просто у моих коллег, правда по контре, стоят подобные скрипты и они легко управляют сервером с сайта.
Есть ли подобная система на bf2, или я обречен постоянно загружать ботву ради смены карты? :no:

твоя проблема не понятна ;)
я тоже администрирую сервак, правда он у меня не в канаде, а в моей комнате находится, но на отдельном компе, на который я захожу по ssh. на компе линукс RHEL4. bf2cc имхо ненужная весчь. да и хороший администратор - это то, который не парит мозГ гамером и ничего не делает, только следит чтоб сервак не падал (проверено :lol: )
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 8.11.2006, 12:12
Сообщение #5





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



может перенаправить RCON на порт 8080 ?
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 24.3.2007, 1:47
Сообщение #6





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Полюзуюсь вот таким ... не сильно навороченный но зато всегда под рукой :D
Цитата
<?php
session_start(); // Start ze session, yuppi!
function digest($seed, $pw)
{
$m = md5($seed . $pw);
return $m;
}
// Check if we entered ze login-box
if(isset($_POST["server"]) && isset($_POST["port"]) && isset($_POST["password"]) && isset($_GET["mode"]))
{
$_SESSION["server"] = $_POST["server"];
$_SESSION["port"] = $_POST["port"];
$_SESSION["password"] = $_POST["password"];
// $mode = $_POST["mode"];
}
$timeout = 5;
if(!empty($_SESSION["server"]) && !empty($_SESSION["port"]) && !empty($_SESSION["password"]) && !empty($_GET["mode"]))
{
if(!$handle = @fsockopen($_SESSION["server"], $_SESSION["port"], $errno, $errstr, $timeout))
{
echo "Could not connect to server! (" . $errstr . ")";
}
else
{
socket_set_timeout($handle, $timeout);
@fread($handle,128);
$keyzeile = @fread($handle,33);
$key = str_replace("### Digest seed: ", "", $keyzeile);
$pass_send = "login " . digest($key, $_SESSION["password"]) . "\n";
@fwrite($handle, $pass_send);
@fgets($handle);
@fgets($handle);
$antwort = @fgets($handle);
echo "<center>" . $antwort . "</center>";
echo "<center><b>" . $_SESSION["server"] . ":" . $_SESSION["port"] . "</b></center><br>";
echo "<center><a href=\"" . $_SERVER["php_self"] . "\" target=\"_self\">Select another server</a>";
echo "&nbsp;&bull;&nbsp;";
echo "<a href=\"" . $_SERVER["php_self"] . "?mode=maplist\" target=\"_self\">Maplist</a>";
echo "&nbsp;&bull;&nbsp;";
echo "<a href=\"" . $_SERVER["php_self"] . "?mode=playerlist\" target=\"_self\">Playerlist</a>";
echo "&nbsp;&bull;&nbsp;";
echo "<a href=\"" . $_SERVER["php_self"] . "?mode=banlist\" target=\"_self\">Banlist</a>";
echo "</center><hr><br>";
switch($_GET["mode"])
{
case "changemap":
if(isset($_POST["mapid"]))
{
$mapid = $_POST["mapid"];
$cmd = "exec admin.nextLevel " . $mapid . "\n";
@fwrite($handle, $cmd);
@fread($handle, 128);
$cmd = "exec admin.runNextLevel\n";
@fwrite($handle, $cmd);
@fread($handle, 128);
echo "<center><b>The map is changing. Please note that it can take some time.</b></center>";
echo "<meta http-equiv=\"refresh\" content=\"5; URL=" . $_SERVER["php_self"] . "?mode=maplist\">";
}
else
{
echo "<center><b>The map-id wasnt delivered.</b></center>";
echo "<meta http-equiv=\"refresh\" content=\"5; URL=" . $_SERVER["php_self"] . "\">";
}
break;
case "maplist":
$cmd = "exec mapList.currentMap\n";
@fwrite($handle, $cmd);
$curmap = @fgets($handle);
$cmd = "exec admin.nextLevel\n";
@fwrite($handle, $cmd);
$nextmap = @fgets($handle);
$cmd = "exec mapList.mapCount\n";
@fwrite($handle, $cmd);
$mapcount = @fgets($handle);
$cmd = "exec mapList.list\n";
@fwrite($handle, $cmd);
echo "<b>Current map: " . $curmap . "</b><br>";
echo "<b>Next map: " . $nextmap . "</b><br><br>";
echo "<table align=\"center\" border=\"1\"><tr><td>ID</td><td>Map</td><td>Gametype</td><td>Mapsize</td></tr>";
for( $i = 0; $i < $mapcount; $i++ )
{
$result = @fgets($handle);
$columns = explode(" ", $result);
echo "<tr><td>" . $columns[0] . "</td><td>" . $columns[1] . "</td><td>" . $columns[2] . "</td><td><center>" .
$columns[3] . "</center></td></tr>";
}
echo "</table>";
echo "<br><br><table align=\"center\"><tr>";
echo "<td><form method=\"post\" action=\"?mode=changemap\"><fieldset><legend>Change map</legend>";
echo "ID: <input type=\"text\" maxlenght=\"2\" size=\"3\" name=\"mapid\">";
echo "<input type=\"hidden\" name=\"port\" value=\"" . $_SESSION["port"] . "\">";
echo "<input type=\"hidden\" name=\"password\" value=\"" . $_SESSION["password"] . "\">";
echo "<input type=\"hidden\" name=\"server\" value=\"" . $_SESSION["server"] . "\">";
echo "<input type=\"submit\" value=\"Change map\">";
echo "</fieldset></form></td>";
echo "<td><form method=\"post\" action=\"?mode=setnextmap\"><fieldset><legend>Set next map</legend>";
echo "<center>ID: <input type=\"text\" maxlenght=\"2\" size=\"3\" name=\"mapid\">";
echo "<input type=\"hidden\" name=\"port\" value=\"" . $_SESSION["port"] . "\">";
echo "<input type=\"hidden\" name=\"password\" value=\"" . $_SESSION["password"] . "\">";
echo "<input type=\"hidden\" name=\"server\" value=\"" . $_SESSION["server"] . "\">";
echo "<input type=\"submit\" value=\"Set map\"></center>";
echo "</fieldset></form></td>";
echo "<td><form method=\"post\" action=\"?mode=restart\"><fieldset><legend>Restart map</legend>";
echo "<input type=\"hidden\" name=\"port\" value=\"" . $_SESSION["port"] . "\">";
echo "<input type=\"hidden\" name=\"password\" value=\"" . $_SESSION["password"] . "\">";
echo "<input type=\"hidden\" name=\"server\" value=\"" . $_SESSION["server"] . "\">";
echo "<center><input type=\"submit\" value=\"restart\"></center>";
echo "</fieldset></form></td></tr></table>";
echo "<table align=\"center\"><tr><td><form method=\"post\" action=\"?mode=pause\"><fieldset><legend>Pause map</legend>";
echo "<input type=\"hidden\" name=\"port\" value=\"" . $_SESSION["port"] . "\">";
echo "<input type=\"hidden\" name=\"password\" value=\"" . $_SESSION["password"] . "\">";
echo "<input type=\"hidden\" name=\"server\" value=\"" . $_SESSION["server"] . "\">";
echo "<center><input type=\"submit\" value=\"pause\"></center>";
echo "</fieldset></form></td>";
echo "<td><form method=\"post\" action=\"?mode=unpause\"><fieldset><legend>Unpause map</legend>";
echo "<input type=\"hidden\" name=\"port\" value=\"" . $_SESSION["port"] . "\">";
echo "<input type=\"hidden\" name=\"password\" value=\"" . $_SESSION["password"] . "\">";
echo "<input type=\"hidden\" name=\"server\" value=\"" . $_SESSION["server"] . "\">";
echo "<center><input type=\"submit\" value=\"unpause\"></center>";
echo "</fieldset></form></td>";
echo "</tr></table>";
break;
case "playerlist":
$cmd = "exec admin.listPlayers\n";
@fwrite($handle, $cmd);
echo "<table border=\"1\" align=\"center\"><tr><td>ID</td><td>Playername</td><td>IP</td><td>Hashkey</td></tr>";
$eofplist = false;
while( !$eofplist )
{
$result = @fgets($handle);
if(trim($result) == "")
{
$eofplist = true;
}
else
{
$result = str_replace(" ", " ", $result);
$columns = explode(" ", trim($result));
$result2 = @fgets($handle);
$columns2 = explode(" ", trim($result2));
$ipcolumn = explode(":", $columns[7]);
echo "<tr><td>" . $columns[1] . "</td><td>" . $columns[3] . "</td><td>" . $ipcolumn[0] . "</td><td>" .
$columns2[2] . "</td><td><a href=\"" . $_SERVER["php_self"] . "?mode=kick&id=" . $columns[1] . "\" target=\"_self\">kick</a></td><td><a href=\"./bf2_rcon.php?mode=ban&id="
. $columns[1] . "&time=round\" target=\"_self\">ban (round)</a></td><td><a href=\"" . $_SERVER["php_self"] . "?mode=ban&id=" . $columns[1] . "&time=perm\"
target=\"_self\">ban (perm)</a></td></tr>";
}
}
echo "</table><br><br>";
echo "<table align=\"center\"><tr>";
echo "<td><form method=\"post\" action=\"?mode=say\"><fieldset><legend>Send ingame-message</legend>";
echo "Message: <input type=\"text\" name=\"msg\">";
echo "<input type=\"radio\" name=\"team\" value=\"3\" checked><b>all</b>";
echo "<input type=\"radio\" name=\"team\" value=\"1\"><b>MEC</b>";
echo "<input type=\"radio\" name=\"team\" value=\"2\"><b>US</b>";
echo "<input type=\"hidden\" name=\"port\" value=\"" . $_SESSION["port"] . "\">";
echo "<input type=\"hidden\" name=\"password\" value=\"" . $_SESSION["password"] . "\">";
echo "<input type=\"hidden\" name=\"server\" value=\"" . $_SESSION["server"] . "\">";
echo "<center><input type=\"submit\" value=\"send message\"></center>";
echo "</fieldset></form></td>";
break;
case "kick":
if(isset($_GET["id"]))
{
$id = $_GET["id"];
$cmd = "exec admin.kickPlayer " . $id . "\n";
@fwrite($handle, $cmd);
echo "<center><b>Player no. " . $id . " has been kicked!</b></center>";
echo "<meta http-equiv=\"refresh\" content=\"5; URL=" . $_SERVER["php_self"] . "?mode=playerlist\">";
}
else
{
echo "<center><b>Player-id wasnt delivered!</b></center>";
echo "<meta http-equiv=\"refresh\" content=\"5; URL=" . $_SERVER["php_self"] . "?mode=playerlist\">";
}
break;
case "ban":
if(isset($_GET["id"]) && isset($_GET["time"]))
{
$id = $_GET["id"];
$time = $_GET["time"];
$cmd = "exec admin.banPlayerKey " . $id . " " . $time . "\n";
@fwrite($handle, $cmd);
echo "Player no. " . $id . " has been banned. (" . $time . ")";
echo "<meta http-equiv=\"refresh\" content=\"5; URL=" . $_SERVER["php_self"] . "?mode=playerlist\">";
}
else
{
echo "<center><b>Player-id wasnt delivered!</b></center>";
echo "<meta http-equiv=\"refresh\" content=\"5; URL=" . $_SERVER["php_self"] . "?mode=playerlist\">";
}
break;
case "banlist":
$cmd = "exec admin.listBannedKeys\n";
@fwrite($handle, $cmd);
$eofbplist = false;
echo "<table align=\"center\" border=\"1\">";
echo "<tr><td>Hashkey</td><td>Time</td><td></td>";
while( !$eofblist )
{
$result = @fgets($handle);
if(trim($result) == "")
{
$eofblist = true;
}
else
{
$columns = explode(" ", $result);
echo "<tr><td>" . $columns[1] . "</td><td>" . $columns[2] . "</td><td><a
href=\"" . $_SERVER["php_self"] . "?mode=delban&key=" . $columns[1] . "\" target=\"_self\">Unban</a></td>";
}
}
echo "</table>";
break;
case "delban":
if(isset($_GET["key"]))
{
$key = $_GET["key"];
$cmd = "exec admin.removeKeyFromBanList " . $key . "\n";
@fwrite($handle, $cmd);
echo "<center><b>Player-ban with hashkey " . $key . " has been deleted!";
echo "<meta http-equiv=\"refresh\" content=\"5; URL=" . $_SERVER["php_self"] . "?mode=banlist\">";
}
else
{
echo "<center><b>The hashkey wasnt delivered!</b></center>";
echo "<meta http-equiv=\"refresh\" content=\"5; URL=" . $_SERVER["php_self"] . "?mode=banlist\">";
}
break;
case "setnextmap":
if(isset($_POST["mapid"]))
{
$mapid = $_POST["mapid"];
$cmd = "exec admin.nextLevel " . $mapid . "\n";
@fwrite($handle, $cmd);
echo "<center><b>The next map will be no. " . $mapid . "!</center></b>";
echo "<meta http-equiv=\"refresh\" content=\"5; URL=" . $_SERVER["php_self"] . "?mode=maplist\">";
}
else
{
echo "<center><b>The map-id wasnt delivered!</b></center>";
echo "<meta http-equiv=\"refresh\" content=\"5; URL=" . $_SERVER["php_self"] . "?mode=maplist\">";
}
break;
case "restart":
$cmd = "exec admin.restartMap";
@fwrite($handle, $cmd);
echo "<center><b>The map will be restarted!</b></center>";
echo "<meta http-equiv=\"refresh\" content=\"5; URL=" . $_SERVER["php_self"] . "?mode=maplist\">";
break;
case "pause":
$cmd = "pause\n";
@fwrite($handle, $cmd);
echo "<center><b>Game paused!</b></center>";
echo "<meta http-equiv=\"refresh\" content=\"5; URL=" . $_SERVER["php_self"] . "?mode=maplist\">";
break;
case "unpause":
$cmd = "unpause\n";
@fwrite($handle, $cmd);
echo "<center><b>Game unpaused!</b></center>";
echo "<meta http-equiv=\"refresh\" content=\"5; URL=" . $_SERVER["php_self"] . "?mode=maplist\">";
break;
case "say":
if(isset($_POST["msg"]) && isset($_POST["team"]))
{
$msg = $_POST["msg"];
$team = $_POST["team"];
switch($team)
{
case 1:
case 2:
$cmd = "exec game.sayTeam " . $team . " \"" . $msg . "\"\n";
@fwrite($handle, $cmd);
switch($team)
{
case 1:
$teamname = "MEC";
break;
case 2:
$teamname = "US";
break;
}
echo "<center><b>The message \"" . $msg . "\" was sent to the " . $teamname . "-Team!</b></center>";
echo "<meta http-equiv=\"refresh\" content=\"5; URL=" . $_SERVER["php_self"] . "?mode=playerlist\">";
break;
case 3:
$cmd = "exec game.sayAll \"" . $msg . "\"\n";
@fwrite($handle, $cmd);
echo "<center><b>The message \"" . $msg . "\" was sent to all players!</b></center>";
echo "<meta http-equiv=\"refresh\" content=\"5; URL=" . $_SERVER["php_self"] . "?mode=playerlist\">";
break;
}
}
else
{
echo "<center><b>The message or the team wasnt delivered!</b></center>";
echo "<meta http-equiv=\"refresh\" content=\"5; URL=" . $_SERVER["php_self"] . "?mode=playerlist\">";
}
break;
}
fclose($handle);
}
}
else
{
echo "<center><b>BF2RCON-Webinterface</b><br><hr><br>";
echo "<form method=\"post\" action=\"?mode=maplist\"><fieldset><legend>Login</legend>";
echo "<table><tr><td>IP or address:</td><td><input type=\"text\" name=\"server\" value=\"\"></td></tr>";
echo "<tr><td>RCON-port:</td><td><input type=\"text\" name=\"port\" value=\"\"></tr>";
echo "<tr><td>RCON-password:</td><td><input type=\"password\" name=\"password\"></td></tr>";
echo "<tr><td colspan=\"2\" align=\"right\"><input type=\"submit\" value=\"log in\"></td></tr></table></fieldset></form></center>";
echo "<br><br><hr><p align=\"right\">report bugs at <a href=\"http://samson.fragthe.net/~imp/index.php\">BF2RCON</a>";
}
?>


Сообщение отредактировал Vasaleks - 24.3.2007, 1:52
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 26.3.2007, 12:59
Сообщение #7





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Не ожидал, что получу подобное...

Vasaleks - огромное спассибо!
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 23.1.2013, 12:32
Сообщение #8





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Кстати, если я правильно понимаю в математике, в скрипте небольшая "очепятка":
Код
$eofbplist = false

лишняя буковка P

Сообщение отредактировал plagiat4x4 - 23.1.2013, 12:33
Перейти в начало страницы
Вставить ник
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28.4.2024, 13:43
Консультации адвоката по уголовным делам. Бесплатно. По всей России