如何查看在Windows上使用特定端口的应用程序日志?

我怎样才能看到在特定的时间段内,哪个应用程序已经在Windows中绑定了一些特定的端口? 我使用Windows自动启动我的应用程序,并将端口1200作为UDP数据包接收方绑定,但有时我的应用程序报告端口已被占用。 我可以看到哪些应用程序在Windows事件查看器或其他地方吗? 所以,我不能使用netstat来查看哪个应用程序正在使用它,我需要历史数据。

我不认为你可以得到历史数据,有人可能会发布一些信息。

您可以通过将其包装在.bat / .cmd文件中来更改您启动应用程序的方式。

然后你可以使用Systernals Suite中的一些工具。

示例bat文件:

@echo off REM Log TCP/UDP port information before starting REM UNREM the best command for your environment REM Systernals tcpvcon.exe -a -n -c > X:\Drive\File.csv REM Native REM netstat -t -a | find "LISTENING" > X:\Drive\File.csv myapplication.exe 

这将编写一个CSV文件,包含所有监听和连接的套接字,然后您可以尝试确定问题所在。

如果您需要标准本地Windows版本,只显示监听模式下的端口,我还包括netstat版本。

更新

您也可以使用Vista及更高版本的Windows防火墙来logging信息。 有关更多信息,请参阅TechNet 。

  1. 启动控制面板
  2. 打开Windows防火墙
  3. 打开高级设置
  4. 在操作中select属性
  5. 单击日志中的自定义
  6. select启用logging丢弃/连接的数据包
  7. 点击确定启用/禁用

或者通过netsh: netsh firewall set logging droppedpackets=enable connection=enable