Um painel de redes pode ser muito útil para a rede de sua empresa, ou mesmo para sua rede doméstica. Com o PHP podemos criar um painel de redes de forma fácil, nesse artigo não irei desenvolver todo um painel, mas sim passar os conceitos básicos para a criação de um.
Uma das forma de descobrir se um computador está online, é através do famoso comando PING, mas lembrando se houver um firewall bloqueando o comando ping, o código abaixo poderá não funcionar.
PHP
1 2 3 4 5 6 7 8 9 10 11 12 | <?php // Comando PING $ip = “10.1.1.1”; $ping = `ping $ip –n 1 –l 1`; // Verifica se o computador respondeu if (eregi(“bytes=”, $ping)) { echo “ONLINE”; } else { echo “OFFLINE”; } ?> |
Vamos entender o comando acima; definimos o ip primeiramente e após isso pingamos ele. NoWindows quando utilizamos o comando ping, caso o computador esteje online a resposta sempre iniciara com “bytes=”, portanto se na resposta houver “bytes=” deduzimos que o computador está online, caso contrário, está offline.
Mas há também outra forma de descobrir se um computador está online, e ainda saber qual porta está aberta, é através do fsockopen();
PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php // Utilizando o fsockopen $ip = “10.1.1.1”; $porta = “80”; $fp = @fsockopen($ip, $porta, $errno, $errstr, 1); // Verificando o resultado if($fp >= 1){ echo “ON”; } else { echo “OFF”; } ?> |
Mas enfim, como eu irei criar meu painel de redes?
Bom com os conceitos acima juntamente com as estruturas de laço – while(), for(), foreach() – será possivel criar o painel.
Por exemplo, podemos armazenar os IPs em um array() e verificar todos eles. O mais correto seria ter uma tabela no banco de dados com os nomes dos computadores da rede e seus respectivos IPs, mas vamos ao código:
PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php $pcs = array( “PC 1” => “10.1.1.1”, “PC 2” => “10.1.1.2”, “PC 3” => “10.1.1.3”, “PC 4” => “10.1.1.4” ); foreach ($pcs as $pc => $ip) { $ping = `ping $ip –n 1 –l 1`; if (eregi(“bytes=”, $ping)) { echo $pc . “: ONLINE” . “<br />”; } else { echo $pc . “: OFFLINE” . “<br />”; } } ?> |
Podemos verificar o status de várias portas seguindo o mesmo conceito:
PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php $portas = array( “HTTP” => “80”, “FTP” => “21”, “SMTP” => “25”, “POP3” => “110” ); foreach ($portas as $nome => $porta) { $ip = “10.1.1.1”; $fp = @fsockopen($ip, $porta, $errno, $errstr, 1); if($fp >= 1){ echo $nome . “: ON” . “<br />”; } else { echo $nome . “: OFF” . “<br />”; } } ?> |
Pronto agora você já tem conhecimento o bastante para criar seu próprio painel de redes. Utilizando apenas o comando PING/FSOCKOPEN e as estruturas de laço já é possível verificar status de vários IPs/Portas. Espero que tenha sido útil esse artigo a você, até o próximo artigo.