Python代码扫描网络以获取计算机名

Python代码扫描网络以获取计算机名,python,networking,programming-languages,Python,Networking,Programming Languages,我需要运行网络扫描以获取连接到网络的PC的计算机名。 这是为了在这些系统上运行软件符合性扫描 我们需要系统的名称,以便连接到其注册表以获取信息 我们如何获得计算机名,或者他们是否以其他方式连接到网络中的计算机?非常适用于windows的黑客攻击 import subprocess def get_host(target): pro = subprocess.Popen(['ping','-a', '-n', '1', target], stdout = subprocess.PIPE,

我需要运行网络扫描以获取连接到网络的PC的计算机名。 这是为了在这些系统上运行软件符合性扫描

我们需要系统的名称,以便连接到其注册表以获取信息


我们如何获得计算机名,或者他们是否以其他方式连接到网络中的计算机?

非常适用于windows的黑客攻击

import subprocess

def get_host(target):
    pro = subprocess.Popen(['ping','-a', '-n', '1', target], stdout = subprocess.PIPE, shell = True)
    return pro.communicate()[0]

def parse_hostname(result):
    return result.split()[1]

def get_range(network, start, finish):
    while start != finish:
        target = network + start
        yield parse_hostname(get_host(target))
        start += 1

您可能只需要使用IP地址而不是名称。Windows中需要机器名的系统调用通常也会接受相同的数字地址

e、 g.这两项工作:

>>> import _winreg
>>> c = _winreg.ConnectRegistry("SOMEMACHINE", _winreg.HKEY_CLASSES_ROOT)
>>> c = _winreg.ConnectRegistry("10.10.40.9", _winreg.HKEY_CLASSES_ROOT)
“计算机名”是一个非常通用的术语。明确你需要什么。(如DNS名称、NetBIOS、WINS等)