これまたは Server Fault がこの質問をするのに最適な場所かどうかはわかりません。私が説明しているメソッドは PHP スクリプトを介して起動されるため、ここに記載します。
ネットワーク上のあるマシンから、そのネットワーク上の別のマシンが Windows マシンであるか Linux マシンであるかをリモートで確認したいと考えています。対象マシンのログイン情報を知っています。
PHP で proc_open を使用して plink を実行し、ls コマンドを起動しています。WindowsとLinuxのplinkがあるため、これはクロスプラットフォームです(私が望んでいます)。成功して出力が得られた場合、そのマシンは Linux マシンです。失敗した場合は、そのウィンドウを想定します。Windows マシンが cygwin で OpenSSH を実行していないことは間違いありません。
問題は、一部の Windows マシンでは、Windows マシンに対して失敗するまでのタイムアウトが永遠にかかることです。まだ信頼性が高く、スクリプトに簡単に入れることができる、もう少し速いものが必要です。誰でも同等のものを考えることができますか?