Показать сообщение отдельно
Непрочитано 05.03.2016, 02:48   #43
Аватар для Alligat0r
Заинтересовавшийся

По умолчанию Re: [Шара, исходники, BOOMSTARTER] L2jPane - Удобное управление базой сервера

Цитата:
Сообщение от Aleksey Посмотреть сообщение
Не, в плане защиты порта - тут даже ssh туннель подойдет и закрытый телнет извне. Где раздобыть команды для телнета?
Aleksey, могу попробовать вспомнить это, но насколько я помню это отдача команд ядру точно такая же будто Вы в игре находитесь и командуете с игрового интерфейса. То есть можете рестарт делать, банить с выкидыванием из игры, добавлять итемы, даже если чар онлайн. Ну вообщем все как будто в игре Вы. Помоему он точно такие же команды просто ядру передает.

Вот из стрессвеба файл который рулит телнетом, я пользовался этой опцией в SW и она работала, судя по коду команды такие же как Вы из игры отдаете будучи там админом.

Код:
<?php

if ( !defined("STRESSWEB") )
    die( "Access denied..." );
if ( !$controller->isAdmin() ) {
    $controller->redirect( "index.php" );
}
$_action = isset( $_REQUEST["action"] ) ? $controller->SafeData( $_REQUEST["action"], 3 ):"";
function Telnet( $sendmsg )
{
    global $l2cfg, $sid;
    if ( $telnet = @fsockopen($l2cfg["gs"][$sid]["host"], $l2cfg["gs"][$sid]["telnet"]["port"], $errno, $errstr, $l2cfg["gs"][$sid]["telnet"]["timeout"]) ) {
        fputs( $telnet, $l2cfg["gs"][$sid]["telnet"]["pass"] );
        fputs( $telnet, "\r\n" );
        if ( !empty($l2cfg["gs"][$sid]["telnet"]["gmname"]) ) {
            fputs( $telnet, $l2cfg["gs"][$sid]["telnet"]["gmname"] );
            fputs( $telnet, "\r\n" );
        }
        fputs( $telnet, $sendmsg );
        fputs( $telnet, "\r\nexit\r\n" );
        if ( $telnet ) {
            fclose( $telnet );
            $echo = "<fieldset><legend>OK</legend>\n";
            $echo .= "<div class='warning'> &nbsp; Комманда успешно отправлена.</div>\n";
            $echo .= "</fieldset><br>\n";
        } else {
            $echo = "<fieldset><legend>Error</legend>\n";
            $echo .= "<div class='warning'> &nbsp; Ошибка при отправке команды (возможно неверный пароль).</div>\n";
            $echo .= "</fieldset><br>\n";
        }
    } else {
        $echo = "<fieldset><legend>Error</legend>\n";
        $echo .= "<div class='warning'> Невозможно подключиться к серверу через Telnet {$l2cfg["gs"][$sid]["host"]}:{$l2cfg["gs"][$sid]["telnet"]["port"]}</div>";
        $echo .= "</fieldset><br>\n";
    }
    return $echo;
}
$telnet_msg = "";
if ( empty($l2cfg["gs"][$sid]["host"]) ) {

    $telnet_msg = "<fieldset><legend>Ошибка</legend>\n";
    $telnet_msg .= "<div class='warning'> &nbsp; Не задан адрес telnet сервера</div>";
    $telnet_msg .= "</fieldset>\n";
} else {
    if ( isset($_action) ) {
        if ( $_action == "announce" ) {
            $telnet_msg = Telnet( "announce ".$_REQUEST["msg"] );
        } elseif ( $_action == "msg" ) {
            $telnet_msg = Telnet( "msg ".$_REQUEST["nick"]." ".iconv("UTF8", "UTF-8", $_REQUEST["msg"]) );
        } elseif ( $_action == "kick" ) {
            $telnet_msg = Telnet( "kick ".$_REQUEST["nick"] );
        } elseif ( $_action == "restart" ) {
            $telnet_msg = Telnet( "restart ".$_REQUEST["time"] );
        } elseif ( $_action == "shutdown" ) {
            $telnet_msg = Telnet( "shutdown ".$_REQUEST["time"] );
        } elseif ( !empty($_action) ) {
            $telnet_msg .= "<fieldset><legend>Error</legend>\n";
            $telnet_msg .= "<div class='warning'> &nbsp; Неизвестная комманда</div>\n";
            $telnet_msg .= "</fieldset><br>\n";
        }
    }
}
$select_server = $controller->select( "sid", $gsListTitles	, $sid, 'style="width: 100px;" onchange="javascript: document.sid.submit(); return false;"' );
$telnet_content = <<< HTML
<br /><table width="100%" border='0' cellpadding='0' cellspacing='0' style="border: 1px solid #AAA;" class='shadow'>
<tr>
    <td bgcolor="#EEEFEF" height="29" style="padding-right:10px; color: #888;" align="right" valign="middle">
		<form action="" method="GET" id="sid" name="sid">
		<input type="hidden" name="mod" value="telnet">
		Сервер: {$select_server}
		</form>
	</td>
</tr>
</table><br />
<table width="100%" cellpadding='0' cellspacing='0' class='shadow'>
<tr>
	<td bgcolor="#DDEFEF" height="29" style="padding-left:10px; color: #888; border: 1px solid #AAA;">
		<a href="javascript:ChangeOption('divAnnounce');"> &raquo;Announce</a> &nbsp;
		<a href="javascript:ChangeOption('divMsg');"> &raquo;ПМ</a> &nbsp;
		<a href="javascript:ChangeOption('divKick');"> &raquo;Kick</a> &nbsp;
		<a href="javascript:ChangeOption('divRestart');"> &raquo;Рестарт сервера</a> &nbsp;
		<a href="javascript:ChangeOption('divShutdown');"> &raquo;Выключение сервера</a> &nbsp;
	</td>
</tr>	
<tr>
    <td style="padding:5px;" bgcolor="#FFFFFF">
		{$telnet_msg}
		<div id="dle_tabView1">
			<div id="divAnnounce" style="" >
			<form action='{$_url}=telnet&action=announce&sid={$sid}' method='POST'>
				<b>Сообщение</b> <input type='text' name='msg'> <br />
				<input type='submit' value='Отправить' class='swbutton2 aleft'>							
			</form>
			</div>
					
			<div id="divMsg" style="display:none" >
			<form action='{$_url}=telnet&action=msg&sid={$sid}' method='POST'>
				<b>Ник игрока</b> <input type='text' name='nick'> <br /><br />
				<b>Сообщение</b> <input type='text' name='msg'> <br />
				<input type='submit' value='Отправить' class='swbutton2 aleft'>
			</form>
			</div>
					
			<div id="divKick" style="display:none" >
			<form action='{$_url}=telnet&action=kick&sid={$sid}' method='POST'>
				<b>Ник игрока</b> <input type='text' name='nick'> <br />
				<input type='submit' value='Отправить' class='swbutton2 aleft'>
			</form>
			</div>
				
			<div id="divRestart" style="display:none" >
				<form action='{$_url}=telnet&action=restart&sid={$sid}' method='POST'>
				<b>Время до рестарта</b> (сек) <input type='text' name='time' size='16'> <br />
				<input type='submit' value='Отправить' class='swbutton2 aleft'>
			</form>
			</div>
			
			<div id="divShutdown" style="display:none" >
			<form action='{$_url}=telnet&action=shutdown&sid={$sid}' method='POST'>
				<b>Время до выключения</b> (сек) <input type='text' name='time' size='16'> <br />
				<input type='submit' value='Отправить' class='swbutton2 aleft'>
			</form>
			</div>
		</div>
	</td>
</tr>
</table>
<script type="text/javascript">
function ChangeOption(selectedOption) 
{
	document.getElementById('divAnnounce').style.display = "none";
	document.getElementById('divMsg').style.display = "none";
	document.getElementById('divKick').style.display = "none";
	document.getElementById('divRestart').style.display = "none";
	document.getElementById('divShutdown').style.display = "none";
	if(selectedOption == 'divAnnounce') {document.getElementById('divAnnounce').style.display = "";}
	if(selectedOption == 'divMsg') {document.getElementById('divMsg').style.display = "";}
	if(selectedOption == 'divKick') {document.getElementById('divKick').style.display = "";}
	if(selectedOption == 'divRestart') {document.getElementById('divRestart').style.display = "";}
	if(selectedOption == 'divShutdown') {document.getElementById('divShutdown').style.display = "";}	
}
</script>
HTML;
$tpl->SetResult( "content", $telnet_content );
?>
Alligat0r вне форума Отправить сообщение для Alligat0r с помощью Skype™ Ответить с цитированием