簡単に言えば、これを行うための優れた普遍的な方法はないということです。Pingは可能な限り近いものです(ほとんどすべてのホストがそれに応答します)が、観察したように、PHPでは通常、低ポートを使用するためにルートアクセスが必要です.
ホストでシステム コールの実行が許可されているため、OS レベルで ping コマンドを実行して結果を解析できますか? これはおそらくあなたの最善の策です。
$result = exec("ping -c 2 google.com");
ホストが ping 要求をブロックしている場合は、より一般的なポートスキャンを実行して他の開いているポートを探すことができます (ただし、これは非常に失礼です。特定の許可を与えていないホストに対しては実行しないでください)。Nmapは、これを行うための優れたツールです。ホストが稼働しているかどうか、およびどのサービスが実行されているかどうかを判断するために、かなりの数のトリックが使用されます。ただし、一部の共有ホスティング プロバイダーは、Nmap をインストールして使用する場合、特に管理していないホストやプローブする権限を持っていないホストに対して、「ハッキング アクティビティ」を理由にアカウントを終了するので注意してください。
さらに、別のホストと同じ非スイッチ イーサネット層にいる場合 (たとえば、たまたま同じオープン WiFi ネットワークにいる場合)、プロミスキャス モードのイーサネット アダプターは、ホストとの間のトラフィックを傍受できます。あなたに直接返信しないでください。