1

リモート ホストが Windows か Unix/Linux かを確認する必要があります。Webサーバーが構成されているとは思えません。私にできることは、いくつかの TCP または UDP サービスへの接続を試みることだけです。

通常、Windows ではどの TCP サービス (TCP ポート番号) が開かれ、Unix/Linux では開かれず、その逆は?

もう 1 つの方法は、ssh を試みて、失敗した場合は Windows ホストであると想定することです。問題は、リモート アクセス方法 ssh または psexec のような Windows フレンドリーなものを選択するためにこれが必要なことです。

4

3 に答える 3

3

nmapの出力を読み取って、リモート ホストが実行している OS を検出できます。これ専用のモジュール全体があります。ここにそれを使用するためのガイドがあります。

于 2010-07-23T15:06:15.790 に答える
1

一方の方法で接続を試みて、それが失敗した場合は別の方法で接続し、どちらも機能しない場合はユーザーに伝えてみませんか?

それだけの場合は、実際に OS を確認する必要はありません。

于 2010-07-23T15:02:39.247 に答える
0

これは、ある OS では常に開いているが別の OS では開いていないポートはほとんどないため、ある程度確実に答えるのは簡単なことではありません。

次のいくつか/すべてを試すことができます

  • 明らかに80 http
  • 22,23 Telnet および SSH (通常、Windows では開かれません。少なくとも通常は *nix で開かれます)
  • 135 WMI で使用されるため、Windows で頻繁に開く
  • 1443 (おそらく SQL サーバー)
  • 691 MS Exchange ルーティングで使用
  • 3389 MS リモート デスクトップ

特にこれらがあなたのマシンではない場合、ポートの範囲をスキャンすると問題が発生する可能性があることをお勧めします。あなたの IP アドレスが「ポート スキャナー」のソースとして記録されている可能性があります。

Web 上で利用可能なポートのかなり広範なリストがいくつかあります。例http://keir.net/portlist.html

于 2010-07-23T17:31:36.737 に答える