Краткий ответ: нет хорошего универсального способа сделать это.Ping примерно настолько близок, насколько это возможно (почти все хосты будут реагировать на это), но, как вы заметили, в PHP обычно требуется root-доступ для использования низкого порта.
Позволяет ли ваш хост выполнять системные вызовы, чтобы вы могли выполнить команду ping на уровне ОС и затем проанализировать результаты?Вероятно, это ваш лучший выбор.
$result = exec("ping -c 2 google.com");
Если хост блокирует запрос ping, вы можете сделать более общий просмотр портов для поиска других открытых портов (но это довольно грубо, не делайте этогодля хостов, которые не дали вам конкретного разрешения). Nmap - хороший инструмент для этого.Он использует немало хитростей, чтобы выяснить, работает ли хост и какие сервисы могут работать, а какие нет.Будьте осторожны, так как некоторые провайдеры общего хостинга прекратят действие вашей учетной записи за «хакерскую активность», если вы установите и используете Nmap, особенно в отношении хостов, которые вы не контролируете или не имеете разрешения на зондирование.
Помимо этого, если вына том же некоммутируемом уровне Ethernet, что и другой хост (например, если вы находитесь в той же открытой сети Wi-Fi), адаптер Ethernet в случайном режиме может прослушивать трафик с хоста и обратно, даже если он не отвечает непосредственно на вас.