Python利用psutil根据服务名获取端口号及Linux端口管理

Hazel
Hazel
发布时间:2026-10-13| 7人浏览过
原创

本文介绍如何使用Python的psutil库根据服务名称查找进程ID(PID),进而通过netstat命令获取该服务占用的端口号。同时补充Linux系统中查看、开启及关闭端口的常用iptables和netstat命令,帮助开发者快速定位网络服务状态。

Python根据服务名获取端口号的方法

根据服务名获取端口号

首先需要安装并导入psutil库,该库提供了获取系统进程信息的接口。

接着,利用psutil遍历所有进程,通过正则表达式匹配服务名称,从而找到对应的进程标识符(PID)。

获取到PID后,结合系统命令netstat筛选该进程的网络连接信息,即可提取出服务监听的端口号。


# -*- encoding=utf8 -*-
import psutil
import re## 标题
import os
def processinfo(x):
  '''根据服务名找到PID'''
  procs = list(psutil.process_iter()) # 获取所有服务列表
  print(procs)
  for r in procs:
    aa = str(r)
    f = re.compile(x,re.I)
    if f.search(aa):
      print (aa.split('pid=')[1].split(',')[0])
      return aa.split('pid=')[1].split(',')[0]
      # print (aa.split('pid='))
def port(x):
  '''通过pid获取端口号'''
  PID = processinfo(x)
  cmd = 'netstat -ano | findstr' + ' '+str(PID)
  print(cmd)
  a = os.popen(cmd)
  # 此时打开的a是一个对象,如果直接打印的话是对象内存地址
  text = a.read()
  # 要用read()方法读取后才是文本对象
  first_line = text.split(':')
  ab = first_line[1]
  cd = ab.split(' ')
  por = cd[0]
  print(por)
  return por

Linux端口管理与配置命令

知识点扩展:Linux环境下查看及配置端口开启状态的方法。

一、查看当前哪些端口处于打开或监听状态,可使用命令 netstat -anp。

二、关闭特定端口,可通过规则 iptables -A INPUT -p tcp --drop 配合 j DROP  动作来实现丢弃数据包。


iptables -A OUTPUT -p tcp --dport 端口号-j DROP

三、开启端口,执行命令:iptables -A INPUT -ptcp --dport 端口号-j ACCEPT。

四、以下是Linux中管理端口命令的具体使用方法说明。


 nc -lp 23 &(打开23端口,即telnet)
  netstat -an | grep 23 (查看是否打开23端口)

五、需要注意的是,Linux中每一个打开的端口,都必须有相应的监听程序在后台运行才能生效。

总结

以上所述是小编给大家介绍的Python根据服务获取端口号的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对本站网站的支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。