Skip to content

Commit

Permalink
Add recurso para identificação do SO
Browse files Browse the repository at this point in the history
Na versão anterior eram executados dois comandos, o ping era feito em um estilo de tentativa e erro. Agora o método run consegue determinar o tipo de sistema e passar a opção.
  • Loading branch information
fabiojaniolima committed Aug 24, 2018
1 parent 04d8370 commit 62abd42
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 8 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ var_dump($statusHttp, $obj->buscarString('esportes'));
use Crphp\Check\Ping;

$output = Ping::run('www.google.com.br');
echo ($output) ? Ping::toString($output) : 'Destino não encontrado';
echo ($output) ? Ping::toString($output) : 'Não foi possível executar o ping.';
```

**Socket**
Expand Down
11 changes: 4 additions & 7 deletions src/Ping.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* @subpackage check
* @author Fábio J L Ferreira <contato@fabiojanio.com>
* @license MIT (consulte o arquivo license disponibilizado com este pacote)
* @copyright (c) 2016-2017, Fábio J L Ferreira
* @copyright (c) 2016-2018, Fábio J L Ferreira
*/

namespace Crphp\Check;
Expand All @@ -24,13 +24,10 @@ class Ping
*/
public static function run($destino, $totalPings = 5)
{
// Se o servidor for Windows executa este comando
exec("ping -n {$totalPings} {$destino}", $output, $status);
// Verifica se o servidor é Windows
$opcao = (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') ? '-n' : '-c';

if (!$output) {
// Se o servidor for "Linux" executa este comando
exec("ping -c {$totalPings} {$destino}", $output, $status);
}
exec("ping {$opcao} {$totalPings} {$destino}", $output, $status);

// se obtiver sucesso retorna um array com os dados do teste
return ($status == 0) ? $output : null;
Expand Down

0 comments on commit 62abd42

Please sign in to comment.