3个不稳定版本

0.2.1 2024年7月12日
0.2.0 2024年3月27日
0.1.0 2024年3月14日

#443 in 网络编程

Download history • Rust 包仓库 611/week @ 2024-04-30 • Rust 包仓库 1382/week @ 2024-05-07 • Rust 包仓库 1286/week @ 2024-05-14 • Rust 包仓库 1335/week @ 2024-05-21 • Rust 包仓库 1571/week @ 2024-05-28 • Rust 包仓库 1652/week @ 2024-06-04 • Rust 包仓库 2697/week @ 2024-06-11 • Rust 包仓库 1561/week @ 2024-06-18 • Rust 包仓库 934/week @ 2024-06-25 • Rust 包仓库 1806/week @ 2024-07-02 • Rust 包仓库 1968/week @ 2024-07-09 • Rust 包仓库 2011/week @ 2024-07-16 • Rust 包仓库 2512/week @ 2024-07-23 • Rust 包仓库 2013/week @ 2024-07-30 • Rust 包仓库 1894/week @ 2024-08-06 • Rust 包仓库 1599/week @ 2024-08-13 • Rust 包仓库

8,396 每月下载量
用于 pik

MIT 许可证

46KB
1K SLoC

Listeners

Crates Downloads Docs CI

一种Rust库,可跨平台方式获取监听TCP端口的进程。

动机

尽管已经存在一些Rust库可以获取进程信息,但它们都没有满足以跨平台方式获取TCP监听器进程ID和名称的需求。

现有库的一些示例

  • netstat2:不提供进程名称(并且未维护)
  • libproc:仅适用于Linux和macOS
  • sysinfo:不公开每个进程使用的套接字

这个库旨在填补这个空白,并旨在成为

  • 跨平台:它目前支持Windows、Linux和macOS
  • 高效:它内部使用低级系统API
  • 简单:它公开直观的API以获取监听进程的详细信息
  • 轻量级:它只有严格必要的依赖项

路线图

  • Windows
  • Linux
  • macOS
  • BSD
  • iOS
  • Android

用法

将此添加到您的 Cargo.toml

[dependencies]

listeners = "0.2"

获取所有监听进程

if let Ok(listeners) = listeners::get_all() {
    for l in listeners {
        println!("{l}");
    }
}

输出

PID: 1088       Process name: rustrover                 Socket: [::7f00:1]:63342
PID: 609        Process name: Microsoft SharePoint      Socket: [::1]:42050
PID: 160        Process name: mysqld                    Socket: [::]:33060
PID: 160        Process name: mysqld                    Socket: [::]:3306
PID: 460        Process name: rapportd                  Socket: 0.0.0.0:50928
PID: 460        Process name: rapportd                  Socket: [::]:50928 

有关用法示例的更多示例,包括如何更细致地获取监听进程,请参阅examples文件夹。

依赖项

~0–39MB
~605K SLoC