Skip to content

Latest commit

 

History

88 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

network_tool

这个仓库包含网络工具项目的源代码。

描述

这是一个在 Windows 系统后台运行的系统托盘程序小工具,包含以下功能:

  • 提供获取活跃网络接口信息的后端服务。
  • 查找可用的端口。
  • 启动一个 Web 服务器来展示网络接口信息。
  • 通过系统托盘图标与用户交互。

使用方法

  1. 构建项目

    cargo build --release
  2. 运行应用程序

    cargo run --release

    运行后,一个系统托盘图标将会出现,表示程序已在后台运行。

  3. 程序会持续在后台运行,并提供获取活跃网络接口信息的服务。

  4. Web 服务器将在本地启动,可以通过浏览器访问查看网络接口信息。

  5. 右键托盘图标可以退出当前程序。

项目架构

主程序 (src/main.rs)

程序的主入口,负责初始化日志系统、确保单例运行、创建托盘图标和菜单、启动 Web 服务器,以及运行事件循环来处理用户交互。

通用模块 (src/common)

包含通用功能,例如日志配置和端口查找。

客户端模块 (src/client)

包含客户端逻辑。

服务器模块 (src/server)

包含服务器端逻辑,负责启动 Web 服务器和处理网络接口信息。

测试模块 (src/tests)

包含单元测试。

资源文件 (src/assets/icon.rgba)

包含程序的图标文件。

日志文件

存储程序的运行日志,文件名包含当前日期。

技术细节

该应用程序使用了以下 crate:

  • actix-cors: 用于处理 CORS。
  • actix-rt: 用于 Actix Web 的运行时环境。
  • actix-web: 用于创建 Web 服务器。
  • chrono: 用于处理日期和时间。
  • if-addrs: 用于获取网络接口信息。
  • log: 用于日志记录。
  • mac_address: 用于获取 MAC 地址。
  • open: 用于在浏览器中打开 URL。
  • serde: 用于序列化和反序列化数据。
  • serde_json: 用于处理 JSON 数据。
  • simplelog: 用于配置日志系统。
  • single-instance: 用于确保程序单例运行。
  • thiserror: 用于自定义错误类型。
  • tokio: 用于异步运行时。
  • tray-icon: 用于创建系统托盘图标和菜单。
  • winit: 用于创建事件循环。
  • windows: 提供 Windows API 绑定。

About

Rust practice projects

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages