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.