AsakuraStar Postado December 20, 2006 Denunciar Share Postado December 20, 2006 ::Obtendo Informações de um determinado Servidor Usando PHP - by AsakuraStar:: Requerimentos: * Noções básicas de PHP * Webserver com suporte a PHP 4.x.x ou superior Tipos de servidores suportados: * Counter-Strike 1.6 * Half-Life 1 1) - Introdução - Será necessário a utilização do protocolo UDP para receber os dados do servidor, devido o sistema do game Half-Life. A primeira coisa a fazer é nos conectar no servidor, no exemplo usaremos o ip:porta 127.0.0.1:27015 2) - Montando o Script para abrir e pegar conteúdo. - Para chamar uma conexão utilizado PHP, usaremos a funcão fsockopen() <?php // IP doServidor $ServerIP = "127.0.0.1"; // Porta do Servidor $ServerPort = "27015"; // Variavel que determina qual Query a ser enviada para o servidor $ServerinfoCommand = "\377\377\377\377infostring\0"; // Abrindo a conexão com o servidor $fp = fsockopen("udp://".$ServerIP, $ServerPort, $errno, $errstr); //Enviando a Query para o servidor fwrite($fp, $ServerinfoCommand); //Removendo os Headers iniciais inuteis $JunkHead = fread($fp,24); // Rotina para checar se o servidor está rodando $CheckStatus = socket_get_status($fp); if($CheckStatus["unread_bytes"] == 0) { die("Não foi possível estabelecer conexão, verifique se o servidor encontra-se online."); } // Obtendo as informações que chegarem $do = 1; $HLServerStats= ""; while($do) { $str = fread($fp,1); $HLServerStats.= $str; $status = socket_get_status($fp); if($status["unread_bytes"] == 0) {$do = 0;} } //Fechando a conexão fclose($fp); ?> O código acima, enviará a Query ÿÿÿÿinfostring para o servidor com a função fwrite() e em seguida criamos um while loop para pegar todo o conteúdo e o colocarmos na variavel $HLServerStats Para uma lista detalhada de todas as Querys de sistem Half-life acesse http://dev.kquery.com/index.php?article=31 3) - Montando o Script para retornar o conteúdo obtido - Agora que nós já temos as informações desejadas, podemos criar um script para facilitar o seu retorno, simplificando na hora de colocar em um servidor web. Vamos dividir a variavel $HLServerStats colocando seu conteúdo em Arrays de uma forma mais organizada. <?php // Separando o conteúdo em Arrays $HLServerStats = explode("\\", $HLServerStats); // Contando a quantidade de arrays $count = count($HLServerStats); // O resultado da quantidade precisa ser um número par if($count % 2 == 0) { // "Loopamos" o conteúdo através dos arrays e em seguida o colocamos em uma variavel chamada $ServerData $i = 0; while($count != $i) { $ServerData[$HLServerStats[$i]] = $HLServerStats[$i+1]; $i = $i + 2; } } ?> 4) - INFORMAÇÕES ADQUIRIDAS - Pronto, agora que já temos a variavel, podemos usa-la de forma organizada. Estas são as palavras-chaves obtidas, cada uma retorna o seu devido valor: protocol - Versão do Protocolo de rede (atualmente 47) address - Endereço IP do Servidor players - Número de jogadores atualmente no servidor. proxytarget - Este servidor possue proxy HLTV? 1 = Sim, 0 = Não lan - Este servidor corre em LAN? 1 = Sim, 0 = Não max - Número máximo de jogadores que podem jogar bots - Número de Bots em jogo gamedir - Diretório do Mod (Ex: tfc) description - Nome do Mod (Ex: Counter-Strike) hostname - Nome do Servidor map - Mapa atual que está em jogo type - Tipo do servidor. d = dedicado, l = listen. password - O Servidor possue senha? 1 = Sim, 0 = Não os - Sistema Operacional do servidor. w = Windows, l = Linux. secure - Modo seguro VAC ativo? 1 = Sim, 0 = Não Para mostrar via Web um determinado conteúdo, utilize este exemplo: <? echo $ServerData['PALAVRA-CHAVE']; ?> Depois é só personalizar a seu gosto, insira Código HTML a vontade ou qualquer outra coisa. Salve o arquivo com um nome qualquer.php, e pronto! Este script é útil para sites de games, por exemplo, mostrar as estatísticas de um servidor pertencente a algum Clã, bastante simples e sem complicações. 5) - Fim Link para o comentário Compartilhar em outros sites More sharing options...
gLm Postado December 20, 2006 Denunciar Share Postado December 20, 2006 tem uma ferramenta q chama HLSW q faz praticamente tudo isso ^^ Link para o comentário Compartilhar em outros sites More sharing options...
206source Postado June 4, 2007 Denunciar Share Postado June 4, 2007 quem anima fazer um script com folhas de stilo ai pra min¿ Link para o comentário Compartilhar em outros sites More sharing options...
M3nT1r4 Postado July 6, 2007 Denunciar Share Postado July 6, 2007 putz queria mto esse script pra por no site www.cs.tophitz.com.br mais eu nao consegui faze-lo eu manjo mexe com php... o site tophitz eu q fiz.. alguem pode da uma maozinha? Link para o comentário Compartilhar em outros sites More sharing options...
206source Postado July 6, 2007 Denunciar Share Postado July 6, 2007 NAO APRENDI NADA! tem anos que espero esse tuto ficar descente. putz tem q aprender progamar em php memmo. ¬¬ o carinha ai podia fazer o escript e deixar ai pronto so pra nois mudar umas coisinhas. mas acho que ele faleceu Link para o comentário Compartilhar em outros sites More sharing options...
M3nT1r4 Postado July 6, 2007 Denunciar Share Postado July 6, 2007 o0 q foda o cara falesceu... de verdade ou ele faleceu aki do forum ^^ ? hehe intao... se algum souber da continuidade ae se a parte php tiveh pronta eu personalizo a parte HTML com imagens etc... e posto ae pra galera.. Link para o comentário Compartilhar em outros sites More sharing options...
Recommended Posts