使用Python查找远程主机操作系统的有效方法

时间:2017-10-10 14:36:18

标签: python linux windows remote-access remote-server

如何使用python识别远程主机操作系统(Unix / Windows)?我找到的一个解决方案是检查port22是否已打开,但后来知道某些Windows主机也打开了端口22但连接被拒绝。请让我知道做同样的有效方法。提前谢谢。

1 个答案:

答案 0 :(得分:1)

出于安全原因,大多数操作系统不会通过网络公布信息。虽然nmap等工具可以通过网络扫描端口来推断在远程系统上运行的操作系统,但可靠地了解操作系统的唯一方法是登录系统。在许多情况下,操作系统将作为登录过程的一部分进行报告,因此通过网络建立连接就足以确定操作系统。跑步" uname -a"在远程系统上也将检索Linux系统上的操作系统类型。

这将从HOST检索欢迎字符串,通常包括操作系统类型。替换UNAME的有效用户名和HOST的主机名。

    #!/usr/bin/env python3

    import sys
    import subprocess

    CMD="uname -a"

    conn = subprocess.Popen(["ssh", "UNAME@HOST", CMD],
            shell=False,
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE)
    res = conn.stdout.readlines()
    print(res)