@Liobon

Возник вопрос в расшифровки nix, не могли бы помочь?

Ребят, не могли бы помочь с расшифровкой фрагмента exec внутри скобок, как первого, так и второго. У меня конечная задача заключается в том, чтобы пинговать серый ip каждые 30 секунд и выводить информацию о его состоянии. Если есть варианты по поводу реализации, то буду очень благодарен.
public function ping($phone_ip){
                    if ($this->myOS()){
                        if (!exec("ping -n 1 -w 1 ".$phone_ip." 2>NUL > NUL && (echo 0) || (echo 1)"))
                            return true;
                    } else {
                        if (!exec("ping -q -c1 ".$phone_ip." >/dev/null 2>&1 ; echo $?"))
                            return true;
                    }
        
                    return false;
                }
  • Вопрос задан
  • 149 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
exec("ping -n 1 -w 1 ".$phone_ip." 2>NUL > NUL && (echo 0) || (echo 1)")

Отправить один ICMP-пакет на IP-адрес из переменной phone_ip, подождать ответ одну секунду, если ответ получен вернуть 0, иначе 1.

exec("ping -q -c1 ".$phone_ip." >/dev/null 2>&1 ; echo $?")

То же самое, только возвращается код возврата ping.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Vass
@Vass
C++/Qt Developer
первый вариант для винды, второй для юникса
ключи говорять что надо пингануть один раз и максимально тихо, весь вывод выкинуть, кроме stderr, если он есть то напечатать 0 иначе 1.
Примерно так.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы