首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python 查看进程打开的端口

在Python中,查看进程打开的端口通常涉及到系统级别的操作,因为端口是与操作系统的网络堆栈相关联的。以下是一些方法来查看进程打开的端口:

使用 psutil

psutil 是一个跨平台的库,用于检索有关正在运行的进程和系统利用率(CPU,内存,磁盘,网络,传感器)的信息。它可以用来查看进程打开的端口。

首先,你需要安装 psutil

代码语言:txt
复制
pip install psutil

然后,你可以使用以下代码来查看所有进程打开的端口:

代码语言:txt
复制
import psutil

for proc in psutil.process_iter(['pid', 'name', 'connections']):
    for conn in proc.info['connections']:
        if conn.status == 'LISTEN':
            print(f"Process {proc.info['pid']} ({proc.info['name']}) is listening on {conn.laddr}")

使用 socket

如果你想查看特定进程打开的端口,你可以使用 socket 库来获取进程的网络连接信息。

代码语言:txt
复制
import socket
import os

def get_process_ports(pid):
    try:
        # 获取进程的网络命名空间
        with open(f'/proc/{pid}/fdinfo', 'r') as f:
            for line in f:
                if 'socket' in line:
                    inode = int(line.split()[9])
                    for s in socket.socket(socket.AF_INET, socket.SOCK_STREAM).getsockname():
                        if s[0] == inode:
                            print(f"Process {pid} is using port {s[1]}")
    except FileNotFoundError:
        print(f"Process {pid} not found")

# 替换下面的 PID 为你想要查询的进程ID
get_process_ports(1234)

使用系统命令

你也可以通过Python的 subprocess 模块来执行系统命令,比如 netstatss,来查看端口信息。

代码语言:txt
复制
import subprocess

def get_open_ports():
    result = subprocess.run(['ss', '-tuln'], capture_output=True, text=True)
    print(result.stdout)

get_open_ports()

注意事项

  • 在Linux系统中,查看进程端口通常需要root权限。
  • 上述代码示例适用于Linux系统。Windows系统可能需要不同的方法来获取相同的信息。
  • 在使用 psutil 或其他库时,要注意版本兼容性问题。

应用场景

  • 网络监控:管理员可能需要监控服务器上的网络活动,查看哪些进程正在监听哪些端口。
  • 故障排查:当遇到网络连接问题时,查看进程打开的端口可以帮助定位问题。
  • 安全审计:检查是否有未知进程占用了重要端口,以防止潜在的安全风险。

可能遇到的问题及解决方法

  • 权限不足:如果遇到权限问题,可以尝试使用 sudo 来运行脚本,或者以管理员身份运行Python解释器。
  • 进程不存在:如果尝试查看不存在的进程ID,会抛出 FileNotFoundError。应该添加适当的异常处理来避免程序崩溃。
  • 跨平台兼容性:不同的操作系统可能有不同的方法来获取进程端口信息,需要根据目标平台调整代码。

以上就是在Python中查看进程打开端口的方法和相关信息。希望这对你有所帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

4分21秒

用Python的方式打开酷玩的a sky full of stars

17分55秒

Python爬虫项目实战 27 爬虫进阶-线程池与进程池的实现 学习猿地

14分39秒

第二十三章:JVM监控及诊断工具-命令行篇/07-jps:查看正在运行的Java进程

5分20秒

使用WGCLOUD实时监测主机服务器防火墙的状态

45分35秒

「 WGCLOUD 」监控系统功能视频介绍(精心整理)

13分16秒

047_尚硅谷_爬虫_文件_文件的打开和关闭

3分15秒

【玩转腾讯云】十秒钟手撸一个钉钉上/下班打卡提醒

10分41秒

011_尚硅谷_爬虫_查看变量的数据类型

8分30秒

怎么使用python访问大语言模型

1.1K
2分10秒

服务器被入侵攻击如何排查计划任务后门

4分40秒

[词根溯源]locals_现在都定义了哪些变量_地址_pdb_调试中观察变量

1.4K
1分37秒

MR300C图传模块 USB摄像头内窥镜转WIFI网口WEBcam机器人图像传输

领券