Windows 如何以编程方式检查远程主机的操作系统?
我需要检查远程主机是Windows还是Unix/Linux。 我不能假设它配置了web服务器。 我所能做的就是尝试连接到多个TCP或UDP服务 哪些TCP服务(TCP端口号)通常在Windows上打开,而不是在Unix/Linux上打开,反之亦然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友好型方法。为什么不尝试一种方式连接,如果失败,则用另一种方式连接,如果两者都不起作用,则告诉用户 如
另一种方法是尝试使用ssh连接到它,如果失败,则假定它是Windows主机。问题是,我需要它来选择远程访问方法ssh或类似psexec的Windows友好型方法。为什么不尝试一种方式连接,如果失败,则用另一种方式连接,如果两者都不起作用,则告诉用户
如果这就是你想要做的,那么就没有必要真正检查操作系统。为什么不试着用一种方式连接,如果失败了,就用另一种方式连接,如果两者都不起作用,就告诉用户
如果这就是您所要做的,则无需实际检查操作系统。您可以读取的输出以检测远程主机正在运行的操作系统。它有一个完整的模块专门用于此。以下是一个。您可以读取的输出,以检测远程主机正在运行的操作系统。它有一个完整的模块专门用于此。这里有一个问题。这不是一件容易回答的事情,因为很少有端口在一个操作系统上总是打开的,但在另一个操作系统上却没有 你可以试试下面的一些/全部
- 显然是80 http
- 22,23 Telnet和SSH(通常不在windows上打开,至少有一个通常在*nix上打开)
- 135由WMI使用,因此经常在windows上打开
- 1443(可能是SQL Server)
- 691由MS Exchange路由使用
- 3389毫秒远程桌面
web上有一些相当广泛的可用端口列表。e、 g.这不是一件容易回答的事情,因为很少有端口在一个操作系统上总是打开的,但在另一个操作系统上却没有 你可以试试下面的一些/全部
- 显然是80 http
- 22,23 Telnet和SSH(通常不在windows上打开,至少有一个通常在*nix上打开)
- 135由WMI使用,因此经常在windows上打开
- 1443(可能是SQL Server)
- 691由MS Exchange路由使用
- 3389毫秒远程桌面