如何确定哪个进程正在侦听Windows上的TCP或UDP端口?
当前回答
在编程上,您需要iphlpapi.h中的东西,例如GetTcpTable2()。像MIB_TCP6ROW2这样的结构包含所有者PID。
其他回答
Use:
netstat -a -o
这显示了在特定端口上运行的进程的PID。
记住进程ID,然后转到任务管理器和服务或详细信息选项卡,结束具有相同PID的进程。
因此,您可以在Windows中终止在特定端口上运行的进程。
如果您想使用GUI工具来实现这一点,可以使用Sysinternals的TCPView。
获取PID和图像名称
仅使用一个命令:
for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /FI "PID eq %a"
其中9000应替换为您的端口号。
输出将包含如下内容:
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
java.exe 5312 Services 0 130,768 K
说明:
它遍历以下命令输出的每一行:netstat-aon | findstr 9000从每一行中,提取PID(%a-名称在此不重要)(PID是该行中的第5个元素)并传递给以下命令任务列表/FI“PID eq 5312”
如果要跳过标头和命令提示符的返回,可以使用:
echo off & (for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /NH /FI "PID eq %a") & echo on
输出:
java.exe 5312 Services 0 130,768 K
如果需要GUI,请使用TCPView。这是微软收购的旧Sysinternals应用程序。
大多数答案中提到的-b开关要求您具有计算机上的管理权限。您实际上不需要提升权限来获取进程名称!
查找端口号中运行的进程的pid(例如8080)
netstat -ano | findStr "8080"
通过pid查找进程名称
tasklist /fi "pid eq 2216"
推荐文章
- 如何验证批处理文件中是否存在一个文件?
- 为什么SCTP不常用/不为人所知
- 无法启动IIS Express Web服务器,注册URL失败,访问被拒绝
- XAMPP -端口80被PID 4的“无法打开进程”使用!12
- 为什么git在Windows下记不住我的密码
- Git克隆/拉不断冻结在“存储密钥在缓存?”
- 我可以在/etc/hosts中映射主机名*和端口*吗?
- 如何修改Play执行run命令时使用的默认端口(9000)?
- 有没有替换Windows (Visual C)的unistd.h ?
- 从Windows批处理文件设置系统环境变量?
- 连接网络共享时,如何提供用户名和密码
- 如何找到可用的端口?
- 在Sublime Text 2中使用Ctrl+D进行多个选择时,我如何跳过匹配?
- #定义WIN32_LEAN_AND_MEAN具体排除了什么?
- 如何通过windows命令行关闭TCP和UDP端口