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

python 查看端口占用

在Python中查看端口占用情况,可以通过调用系统命令或者使用第三方库来实现。以下是几种常见的方法:

方法一:使用 ossubprocess 模块调用系统命令

你可以使用Python的 ossubprocess 模块来执行系统命令,比如在Linux或macOS上使用 lsof 命令,在Windows上使用 netstat 命令。

Linux / macOS 示例代码:

代码语言:txt
复制
import subprocess

def check_port(ip, port):
    cmd = f'lsof -i:{port} | grep LISTEN'
    result = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    if result.returncode == 0:
        print(f"Port {port} is in use.")
    else:
        print(f"Port {port} is free.")

check_port('127.0.0.1', 8080)

Windows 示例代码:

代码语言:txt
复制
import subprocess

def check_port(ip, port):
    cmd = f'netstat -ano | findstr :{port}'
    result = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    if result.returncode == 0:
        print(f"Port {port} is in use.")
    else:
        print(f"Port {port} is free.")

check_port('127.0.0.1', 8080)

方法二:使用第三方库 psutil

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

安装 psutil

代码语言:txt
复制
pip install psutil

使用 psutil 查看端口占用的示例代码:

代码语言:txt
复制
import psutil

def check_port(ip, port):
    for conn in psutil.net_connections(kind='inet'):
        if conn.laddr.ip == ip and conn.laddr.port == port:
            print(f"Port {port} is in use by process {conn.pid}.")
            return
    print(f"Port {port} is free.")

check_port('127.0.0.1', 8080)

方法三:使用 socket 库尝试绑定端口

另一种方法是尝试在指定端口上创建一个socket连接,如果成功则端口未被占用,如果失败则端口已被占用。

示例代码:

代码语言:txt
复制
import socket

def check_port(ip, port):
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
        try:
            s.bind((ip, port))
            print(f"Port {port} is free.")
        except OSError:
            print(f"Port {port} is in use.")

check_port('127.0.0.1', 8080)

注意事项

  • 在执行系统命令时要注意安全性,避免命令注入攻击。
  • 使用 psutil 库时,可能需要管理员权限才能获取所有进程的信息。
  • 在Windows系统上,netstat 命令可能需要管理员权限才能显示所有连接信息。

以上方法可以帮助你检查特定端口是否被占用,以及哪个进程占用了该端口。如果你需要进一步的操作,比如终止占用端口的进程,你可以根据进程ID(PID)来执行相应的操作。

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

相关·内容

3分52秒

windows下如何解决端口占用问题

8分29秒

python端口扫描器

17分37秒

Python安全-50行代码实现端口扫描(3)

10分55秒

050_尚硅谷课程系列之Linux_实操篇_磁盘管理类(一)_查看目录占用空间大小

10分55秒

050_尚硅谷课程系列之Linux_实操篇_磁盘管理类(一)_查看目录占用空间大小

6分29秒

Python 人工智能 数据分析库 60 pandas终结篇 2 数据查看 学习猿地

5分20秒

011_编程到底好玩在哪?

1.3K
10分41秒

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

3分15秒

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

1分37秒

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

4分40秒

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

1.4K
4分29秒

MySQL命令行监控工具 - mysqlstat 介绍

领券