我希望能够找出特定程序正在使用的端口.是否有任何在线可用的程序或带有Windows的程序可以告诉我哪些进程正在使用我的计算机上的哪些端口?
PS - 在你因为不是一个编程问题而下调这个问题之前,我正在寻找测试一些网络代码的程序.
netstat -b -a
列出正在使用的端口,并为您提供使用每个端口的可执行文件.我相信您需要在管理员组中执行此操作,而且我不知道Vista上存在哪些安全隐患.
我通常-n
也会添加它以使其快一点,但添加-b
可以使它变得非常慢.
编辑:如果您需要比netstat提供的更多功能,vasac建议您尝试TCPView.
TCPView可以满足您的要求.
在Vista上,您需要提升权限才能将-b选项与netstat一起使用.要解决这个问题,您可以运行"netstat -ano",它将显示所有打开的端口以及相关的进程ID.然后,您可以使用tasklist查找哪个进程具有相应的id.
C:\>netstat -ano Active Connections Proto Local Address Foreign Address State PID ... TCP [::]:49335 [::]:0 LISTENING 1056 ... C:\>tasklist /fi "pid eq 1056" Image Name PID Session Name Session# Mem Usage ========================= ======== ================ =========== ============ sqlservr.exe 1056 Services 0 66,192 K
您可能已经安装了Process Explorer(来自Sysinternals,现在是Microsoft的一部分).如果没有,请继续安装它 - 它就是那么酷.
在Process Explorer中:找到有问题的进程,右键单击并选择TCP/IP选项卡.它甚至会为每个套接字显示一个堆栈跟踪,表示打开该套接字的代码.
如果您更喜欢GUI界面,CurrPorts是免费的,适用于所有版本的Windows.显示端口以及打开它们的进程.