Windows查看服务占用端口

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 本文以MongoDB为例,其他服务的查看流程类似:1.查看服务的PID名词解释:服务:电脑访问数据库,其实数据库就是一种服务。服务必须要开启后,才能对其进行访问。

本文以MongoDB为例,其他服务的查看流程类似:

1.查看服务的PID

名词解释:
服务:电脑访问数据库,其实数据库就是一种服务。服务必须要开启后,才能对其进行访问。而电脑开启1个服务,这个服务在电脑中就是1个进程。
PID:process identification的简称,进程识别符,一般是10进制的数字。
在Windows系统中查看服务的PID的方法是打开任务管理器,进入详细信息页面。
如果打开任务管理器时是简略信息页面,点击“详情信息”按钮,如下图所示:

img_9ca26c4b194357bcd26eddc689cf8c77.png
image.png

进入 详情信息页面,选择下图红色箭头所示的 服务
img_fe6d0418170e3c088cea00241823e694.png
image.png

先点击下图红色箭头所示的 名称,会按照服务名称从小到大排序。
例如我们要找 MongoDB服务PID,按照顺序往下翻,如下图所示:
img_e32da0fc53ae8ad9c939fead9f65176f.png
image.png

从上图可以看出MongoDB服务的PID为 4584

2.查看PID对应的端口

打开cmd,按Windows+r组合键,在运行窗口中,输入命令cmd,如下图所示:

img_d59fd76bb095b16b238a28996a4e5e3d.png
image.png

运行窗口中,输入命令cmd,点击“确定”按钮或者按Enter键进入 cmd窗口
在cmd窗口中输入命令: netstat -ano
运行结果如下图所示:
img_7b897c075e3caf9e4da4ecc8f18eeab6.png
image.png

从上图中可以看出 PID为4584的进程的本地地址为: 127.0.0.1:27017
PID为4584的进程占用端口为 27017

3.查找PID对应的端口

查找命令:netstat -ano|findstr "{}"
大括号替换为进程的PID,如下图所示:

img_dc7460b38d60f9efa9026c449493f2f3.png
image.png

4.编写python代码

将上面3步的思路用python代码实现,以后的查看就可以通过运行python代码得出结果。
代码中有2个函数,定义getPid函数用于模糊搜索进程名和其对应的PID,传入参数processName数据类型为字符串;
定义pid2port函数用于获取PID及其占用的IP本地地址和端口,传入参数pip_input的数据类型为字符串或整数。
在命令行中tasklist | find "{}"可以用于模糊查找进程对应的PID,大括号替换为模糊查找内容。
模糊查找进程名含有sql的进程命令:tasklist | find "sql",如下图所示:

img_3b505ae1ca452ff083966ae5ffe5f646.png
image.png

import os 
import re 

def getPid(processName):
    cmd_str = 'tasklist | find "%s"' %processName
    p = os.popen(cmd_str)
    tasklist_str = p.read()
    task_list =tasklist_str.split('\n')[:-1]
    if len(task_list) == 0:
        print('没有找到该进程')
        return []
    else:
        process_list = [re.split('\s+',k)[0] for k in task_list]
        pid_list = [re.split('\s+',k)[1] for k in task_list]
        result = list(zip(process_list,pid_list))
        print('进程和对应的PID:')
        for i in result:
            print(i[0], i[1], sep='\t')
        return result
    
def pid2port(pid_input):
    pid_input = str(pid_input)
    p = os.popen('netstat -ano|findstr "%s"' %pid_input)
    netstat_str = p.read()
    netstat_list = netstat_str.split('\n')[:-1]
    pid_list = [re.split(r'\s+',k.strip())[-1] for k in netstat_list]
    address_list = [re.split(r'\s+',k.strip())[1] for k in netstat_list]
    port_list = [k.split(':')[-1] for k in address_list]
    flag = True
    for pid,address,port in zip(pid_list,address_list,port_list):
        if pid == pid_input:
            print('PID为%s的进程本地地址为:%s,端口号为:%s'\
                  %(pid,address,port))
            flag = False
    if flag:
        print('PID为%s的进程没有占用端口' %pid_input)

if __name__ == '__main__':
    processName = 'mongo'
    pid_list = getPid(processName)  
    if len(pid_list) == 1:
        pid2port(pid_list[0][1])
    elif len(pid_list) > 1:
        pid = input("请输入查找的PID:")
        pid2port(pid)

如果开启了MongoDB服务,上面一段代码的运行结果如下:

进程和对应的PID:
mongod.exe      4584
PID为4584的进程本地地址为:127.0.0.1:27017,端口号为:27017
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
4月前
|
NoSQL Redis Windows
windows服务器重装系统之后,Redis服务如何恢复?
windows服务器重装系统之后,Redis服务如何恢复?
82 6
|
2月前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
|
2月前
|
安全 Linux 网络安全
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息。本文分三部分介绍 nmap:基本原理、使用方法及技巧、实际应用及案例分析。通过学习 nmap,您可以更好地了解网络拓扑和安全状况,提升网络安全管理和渗透测试能力。
190 5
|
3月前
|
边缘计算 安全 网络安全
|
3月前
|
缓存 负载均衡 应用服务中间件
Nginx 实现一个端口代理多个前后端服务
【10月更文挑战第19天】Nginx 的强大功能不仅限于此,它还可以与其他技术和工具相结合,为我们的应用提供更强大的支持和保障。在不断发展的互联网时代,掌握 Nginx 的使用技巧将为我们的工作和生活带来更多的便利和效益。
|
3月前
|
开发框架 .NET API
Windows Forms应用程序中集成一个ASP.NET API服务
Windows Forms应用程序中集成一个ASP.NET API服务
112 9
|
3月前
|
应用服务中间件 Apache Windows
免安装版的Tomcat注册为windows服务
免安装版的Tomcat注册为windows服务
146 3
|
3月前
|
Java 关系型数据库 MySQL
java控制Windows进程,服务管理器项目
本文介绍了如何使用Java的`Runtime`和`Process`类来控制Windows进程,包括执行命令、读取进程输出和错误流以及等待进程完成,并提供了一个简单的服务管理器项目示例。
53 1
|
3月前
|
弹性计算 关系型数据库 网络安全
阿里云国际版无法连接和访问Windows服务器中的FTP服务
阿里云国际版无法连接和访问Windows服务器中的FTP服务
|
4月前
|
安全 Windows
电脑进入桌面后操作无响应?不妨试试禁用Windows Search服务
电脑进入桌面后操作无响应?不妨试试禁用Windows Search服务

热门文章

最新文章