OS が Linux か他の OS かを確認するにはどうすればいいですか?

OS が Linux か他の OS かを確認するにはどうすればいいですか?

次のリモートIPがリナックスOSまたはその他勝つ

12.43.223.4
23.54.67.3
23.5.6.3

Linux マシン (Redhat) があり、このマシンからリモート マシンが Linux であるか他のマシンであるかを識別する必要があります。

nmapで識別できることは知っています

しかし、実稼働マシンにnmapがインストールされていないため、他の方法を見つけたい

リモートマシンが Linux か他のマシンかを確認する方法について何か提案はありますか? ( nmap 以外 )

答え1

あなたの質問を正しく理解していれば、あなたは次のように尋ねていると思います。

ネットワーク上のコンピュータにログインせずにオペレーティングシステムを識別する方法

それはできません。ネットワークが TCP/IP に基づく一般的な IP (インターネット プロトコル) であると仮定すると、ネットワーク上のどのコンピュータ システムもそのプロトコルに基づいて通信します。そして、それがすべてである場合は、次のようになります。

  • ネットワーク上のコンピュータは、まずpingに応答しないなど、目に見えないように設定することができます。
  • しかし、応答があったり、ネットワーク上にこのコンピュータ システムが存在することを示す何らかの兆候が見られたりした場合、それが Windows、Linux、macOS、Android、その他のいずれであるかをどのように推測できるでしょうか? できません。IP/TCP プロトコルでは、そのようなことは想定されていません。

システムが、送信される各パケットの TCP/IP ヘッダーにその種の情報を含めるほど十分に低いレベルで構成されている場合は、おそらくそれを使用して作業できると思いますが、非常にカスタマイズが必要になります。それ以外の場合は、そのシステムにログインできない限り、信頼できる方法はわかりません。SSH プロトコル経由でシステムにログインする場合、SSH プロトコルは OS に依存しないため、同じです。したがって、ポート 22 で SSH 経由で応答するコンピュータ システムが表示された場合、インターネット プロトコル上で実行される SSH プロトコルに従う限り、どのオペレーティング システムでもどのコンピュータ デバイスでもそれを行うことができます。

もちろん、これがIPが優れている理由です。同じプロトコルに従う限り、あらゆるデバイス(オペレーティングシステムに関係なく)間の通信が可能になります。インターネットプロトコル例え話としては、あなたが男性なのか、女性なのか、その他の特徴なのかを知る必要はなく、与えられた言語プロトコル(この場合は英語)に従っている限り、ある程度のコミュニケーションが取れる、ということになります。

以下をお読みくださいIPV4 Wikipedia の記事インターネットの歴史に加えて。

答え2

for i in  hostname1 hostname2; 
do 
ssh -o 'StrictHostKeyChecking no' $i -A <<'EOF'
uname -a | awk '{if($0 ~ /Linux/){print "Its Linux os"}else{print "its not linux os"}}'
EOF
done

関連情報