#utilization #networking #cli #command-line-tool

app what

按进程、连接和远程 IP/主机名显示当前网络利用率

12 个版本 (4 个破坏性版本)

0.5.1 2019年12月23日
0.5.0 2019年12月22日
0.4.1 2019年12月20日
0.3.7 2019年11月12日
0.1.0 2019年10月17日

#utilization 中排名 3

每月下载 28

MIT 许可证

56KB
1.5K SLoC

what

...是谁占用了我的带宽?!

demo

这是一个 CLI 工具,用于显示当前按进程、连接和远程 IP/主机名显示的网络利用率

它是如何工作的?

what 会嗅探指定的网络接口,并记录 IP 数据包大小,并将其与 Linux 上的 /proc 文件系统或 MacOS 上的 lsof 进行交叉引用。它对终端窗口大小做出响应,如果没有空间显示更多信息,则显示较少的信息。它还会尝试使用反向 DNS 在最佳努力的基础上将 IP 解析为主机名。

安装

Arch Linux

yay -S what

MacOS 和其他 Linux 发行版

cargo install what

如果您使用的是 Linux,您还可以从发布中获取通用二进制文件。

目前不支持 Windows - 如果您想贡献 Windows 版本,将非常欢迎。

使用方法

USAGE:
    what [FLAGS] [OPTIONS]

FLAGS:
    -h, --help          Prints help information
    -n, --no-resolve    Do not attempt to resolve IPs to their hostnames
    -r, --raw           Machine friendlier output
    -V, --version       Prints version information

OPTIONS:
    -i, --interface <interface>    The network interface to listen on, eg. eth0

请注意,由于 what 会嗅探网络数据包,它需要 root 权限 - 因此您可能需要使用它(例如)与 sudo 一起使用。

raw_mode

what 还支持一种更易于解析的模式,可以管道或重定向到文件。例如,尝试

what --raw | grep firefox

贡献

欢迎所有类型的贡献。如果您想要新功能(或发现了错误),请打开一个 issue 或 PR。

设置开发环境

  1. 克隆项目
  2. cargo run,或者如果您更喜欢 cargo run -- -i <网络接口名称>(您通常可以使用 ifconfigiwconfig 获取名称)。您可能需要 root 权限来运行此应用程序,因此请确保使用(例如)sudo。

运行测试: cargo test

注意,目前测试没有测试操作系统层(os 文件夹中的任何内容)。

如果您遇到了困难,不确定如何处理某个问题,或者需要一些指导,欢迎您联系: [email protected]

许可证

MIT

依赖项

约18MB
约328K SLoC