0

我想列出特定系统的所有开放端口。我找到了一种解决方案,但它的工作非常缓慢。我正在使用 .net 框架 3.5。

4

1 回答 1

3

假设窗口:获取打开端口列表(或侦听/未侦听/过滤等)的唯一方法是端口扫描所有端口(所有 65,535 个端口,除非只对特定端口感兴趣)。这是一个明显的安全考虑 - 以及为什么有这么多端口扫描器而不是有人敲开一个小型 C# 实用程序来获取列表。因此,它会很慢。

如果它来自您的网络(因此您可以访问它) - 您可以构建一个安全的(ish)内部服务,允许同一子网上的其他机器请求端口列表。这将要求每台机器运行该服务,内置一些安全考虑,以及一种请求方式(很可能是一个小型 Windows 应用程序/cmd 行例程,它发送服务侦听的 UDP 或 TCP 请求,并且(在验证后)等)可能使用加密或安全套接字返回列表)。可能有现成的(甚至可能是免费的蜜蜂 - 尽管认为那里的安全性)产品或工具可用于可访问(本地)网络。或者(也许是微软的 PortQry 工具

但是,如果您正在尝试编写黑客工具 - 只需下载 NMap 即可。

于 2012-08-10T18:29:52.420 回答