Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何以编程方式检查远程主机的操作系统?_Windows_Linux_Ssh_Remote Access - Fatal编程技术网

Windows 如何以编程方式检查远程主机的操作系统?

Windows 如何以编程方式检查远程主机的操作系统?,windows,linux,ssh,remote-access,Windows,Linux,Ssh,Remote Access,我需要检查远程主机是Windows还是Unix/Linux。 我不能假设它配置了web服务器。 我所能做的就是尝试连接到多个TCP或UDP服务 哪些TCP服务(TCP端口号)通常在Windows上打开,而不是在Unix/Linux上打开,反之亦然 另一种方法是尝试使用ssh连接到它,如果失败,则假定它是Windows主机。问题是,我需要它来选择远程访问方法ssh或类似psexec的Windows友好型方法。为什么不尝试一种方式连接,如果失败,则用另一种方式连接,如果两者都不起作用,则告诉用户 如

我需要检查远程主机是Windows还是Unix/Linux。 我不能假设它配置了web服务器。 我所能做的就是尝试连接到多个TCP或UDP服务

哪些TCP服务(TCP端口号)通常在Windows上打开,而不是在Unix/Linux上打开,反之亦然


另一种方法是尝试使用ssh连接到它,如果失败,则假定它是Windows主机。问题是,我需要它来选择远程访问方法ssh或类似psexec的Windows友好型方法。

为什么不尝试一种方式连接,如果失败,则用另一种方式连接,如果两者都不起作用,则告诉用户


如果这就是你想要做的,那么就没有必要真正检查操作系统。

为什么不试着用一种方式连接,如果失败了,就用另一种方式连接,如果两者都不起作用,就告诉用户


如果这就是您所要做的,则无需实际检查操作系统。

您可以读取的输出以检测远程主机正在运行的操作系统。它有一个完整的模块专门用于此。以下是一个。

您可以读取的输出,以检测远程主机正在运行的操作系统。它有一个完整的模块专门用于此。这里有一个问题。

这不是一件容易回答的事情,因为很少有端口在一个操作系统上总是打开的,但在另一个操作系统上却没有

你可以试试下面的一些/全部

  • 显然是80 http
  • 22,23 Telnet和SSH(通常不在windows上打开,至少有一个通常在*nix上打开)
  • 135由WMI使用,因此经常在windows上打开
  • 1443(可能是SQL Server)
  • 691由MS Exchange路由使用
  • 3389毫秒远程桌面
我建议,端口的扫描范围可能会给您带来麻烦,特别是如果这些端口不是您的机器。您可能会发现您的IP地址被记录为“端口扫描程序”的可能来源


web上有一些相当广泛的可用端口列表。e、 g.

这不是一件容易回答的事情,因为很少有端口在一个操作系统上总是打开的,但在另一个操作系统上却没有

你可以试试下面的一些/全部

  • 显然是80 http
  • 22,23 Telnet和SSH(通常不在windows上打开,至少有一个通常在*nix上打开)
  • 135由WMI使用,因此经常在windows上打开
  • 1443(可能是SQL Server)
  • 691由MS Exchange路由使用
  • 3389毫秒远程桌面
我建议,端口的扫描范围可能会给您带来麻烦,特别是如果这些端口不是您的机器。您可能会发现您的IP地址被记录为“端口扫描程序”的可能来源

web上有一些相当广泛的可用端口列表。e、 g