是否可以捕获哪个程序正在访问特定的 IP 地址?
我发现我的电脑被洪水淹没了,想逐个检查地址。
是否可以为此设立一些审计?
答案1
TCPView解决方案
TCP查看器从系统内部将显示“系统上所有 TCP 和 UDP 端点的详细列表,包括本地和远程地址以及 TCP 连接的状态。”
TCPView 是一个 Windows 程序,它将向您显示系统上所有 TCP 和 UDP 端点的详细列表,包括本地和远程地址以及 TCP 连接的状态。在 Windows Server 2008、Vista 和 XP 上,TCPView 还会报告拥有端点的进程的名称。TCPView 提供了 Windows 附带的 Netstat 程序的一个更具信息性和更方便呈现的子集。TCPView 下载包括 Tcpvcon,这是一个具有相同功能的命令行版本。
确保未选中“解析地址”以获取 IP 地址而不是域名。
您可以按“远程地址”对结果进行排序,以找到您感兴趣的 IP 地址。
例子:
此屏幕截图显示 Firefox 连接到 stackoverflow.com。
CurrPorts 解决方案
CurrPorts 是一款网络监控软件,可显示本地计算机上当前打开的所有 TCP/IP 和 UDP 端口的列表。对于列表中的每个端口,还会显示有关打开该端口的进程的信息,包括进程名称、进程的完整路径、进程的版本信息(产品名称、文件说明等)、进程的创建时间以及创建该进程的用户。
例子:
此屏幕截图显示 Firefox 连接到 stackoverflow.com。
如果我想记录结果该怎么办?
TcpLogView也来自尼尔软件提供 TCP 连接日志记录。
TcpLogView 是一个简单的实用程序,它监视系统上打开的 TCP 连接,并在每次打开或关闭 TCP 连接时添加新的日志行。对于每个日志行,都会显示以下信息:事件时间、事件类型(打开、关闭、监听)、本地地址、远程地址、远程主机名、本地端口、远程端口、进程 ID、进程名称以及远程 IP 的国家/地区信息(需要单独下载 IP 到国家/地区文件。)
免责声明
我与 SystemInternals(微软的一部分)或 Nirsoft 没有任何关系,我只是其(免费)实用程序的最终用户。
答案2
在 Windows 7/8*/10 中,您可以使用资源监视器 -> 网络选项卡。
打开资源监视器最简单的方法是:
- 打开任务管理器(右侧任务栏->启动任务管理器)
- 单击“性能”选项卡
- 单击资源监视器按钮
* = 未确认
答案3
您也可以实现此操作,而无需从管理命令 shell 下载其他工具。
运行管理员命令 shell:
- 按下开始按钮
- 输入“cmd”
- 按 Ctrl + Shift + Enter
输入命令:网络状态-tabn
这些开关的含义如下:
- -t 显示当前连接卸载状态。
- 即 ESTABLISHED、LISTENING、TIME_WAIT
- -a 显示所有连接和监听端口。
- -b 显示创建每个连接或监听端口所涉及的可执行文件。在某些情况下,众所周知的可执行文件承载多个独立组件,在这些情况下,将显示创建连接或侦听端口所涉及的组件序列。在这种情况下,可执行文件名位于底部的 [] 中,顶部是它调用的组件,依此类推,直到达到 TCP/IP。请注意,除非您拥有足够的权限,否则此选项可能非常耗时,并且会失败。
- -n 以数字形式显示地址和端口号。
诚然,它并不像许多 GUI 选项实现的输出那样复杂,但它存在且可用,无需下载其他工具。它也可以在 Linux 上运行,只需稍有不同的开关。
答案4
正如 antik 所说,您可以在管理命令提示符中使用 netstat。不过,我建议您使用o
而不是b
,这样输出将在一行中,您可以使用 find 进一步过滤它。您不会得到进程名称,但会得到进程 ID:
例如
netstat -aon | find ":80"
显示使用端口 80 的所有连接(本地或远程)
然后,您可以在任务管理器中检查该进程,或者在命令提示符中执行另一个过滤,这次使用 tasklist:
tasklist | find "1100"
或者
tasklist /FI "PID eq 1100"