用于生成具有各种参数的 WiFi 热图的 Python 应用程序
项目描述
什么
whm 又名 wifi 热映射器
whm 也称为wifi-heat-mapperPython 库,用于对 Wi-Fi 网络进行基准测试并收集有用的指标,这些指标可以转换为有意义的易于理解的热图。该工具旨在帮助网络工程师、管理员和家庭实验室人员确定其接入点和路由器的性能。虽然此工具可能有助于大致了解您的 WiFi 性能,但该工具并不全面。
这个工具深受Jason Antman的python-wifi-survey-heatmap的启发。
支持的平台
- 操作系统
- Linux x86_64(64 位)
依赖项
必需的
- Python 版本:3.7 - 3.9(使用 Tkinter)
- iperf3 >= 0.1.11
- matplotlib >= 3.4.0
- tqdm >= 4.55.0
- 枕头 >= 8.2.0
- scipy >= 1.6.0
- numpy >= 1.20.0
- PySimpleGUI >= 4.34.0
可选的
- Ookla Speedtest CLI >= 1.0.0.2(推荐)
- Sivel Speedtest CLI >= 2.1.3(抖动不可用,不推荐)
- Librespeed CLI >= 1.0.9(强烈推荐)
Tkinter 依赖
默认情况下,Tkinter 没有随 Python 一起安装。要求用户使用各自的包管理器安装 Tkinter。
Arch Linux 和 Manjaro
$ pacman -S tk
Fedora、CentOS、RHEL 和 RockyLinux
$ dnf install python3-tkinter
Debian 和 Ubuntu
$ apt install python3-tk
openSUSE 和 SUSE Linux Enterprise
$ zypper install python3-tk
琴图
安装
安装 whm 的最简单方法是通过pip。
$ pip install whm
或者,您可以克隆存储库并编译它。
$ git clone https://github.com/Nischay-Pro/wifi-heat-mapper.git
$ cd wifi-heat-mapper
$ python3 setup.py install
用法
服务器配置
whm 需要连接到iperf3在服务器模式下运行的实例。在 LAN 中可用的机器上运行iperf3 -s以在前台以服务器模式启动 iperf3。我强烈建议在有线计算机或虚拟机实例上运行 iperf3 实例。
默认情况下,iperf3 将使用 TCP 和 UDP 端口 5201。
客户端配置
配置引导
最初,您需要引导您的配置,指定您想要查看的图表、您想要重复基准测试的次数、您将用于配置的无线接口以及配置的 SSID。如果您正在使用,系统librespeed-cli会询问您是否更喜欢它,speedtest并可选择提供自定义 libre 服务器列表的路径。
whm 支持多个图表,允许用户选择一个、多个或所有图表。该工具将自动收集适当的指标以生成图表。
$ whm bootstrap
注意:要从 Ookla speedtest 分析指标,用户需要确保他们已经安装了 Ookla 提供的二进制文件并且可以从
$PATH环境变量中访问。
完成该过程后,config.json将在您执行命令的目录中提供一个名为的文件。
要指定保存路径和文件名,请使用该--config选项,包括用于存储配置详细信息的路径和文件名。
例如:
$ whm bootstrap --config /home/example/whm/test.json
基准测试
生成配置文件后,您可以开始进行基准测试。
$ whm benchmark -m examples/sample_floor_map.jpg -s 192.168.1.100 -c config.json
使用的命令行选项:
-m或者--map是循环地图的路径。-s或者--server是 iperf3 服务器的 IP 地址(:port)。您可以使用 指定端口IPADDRESS:PORT,例如192.168.1.100:5123。如果未指定端口5201,则使用默认端口。-c或者--config是您之前引导的配置文件的路径。
指定适当的选项后,将打开一个 GUI 窗口。
您将看到一个加载了您的平面图的画布。
- 退出:退出基准测试
- 保存结果:保存您到目前为止捕获的结果。结果存储在您之前使用的相同配置文件中。
- 绘图:绘制您捕获的结果。
- 全部清除:清除画布,删除所有捕获的指标。
收集指标
- 首先在画布上大致在您从中捕获指标的位置单击鼠标左键。现在应该出现一个带有蓝色轮廓的灰色圆圈。
- 现在右键单击圆圈。您将看到一个包含 3 个选项的下拉菜单。
- 基准测试:whm 将在此位置开始捕获指标。
- 删除:此时 whm 将删除点和指标(如果有)。
- 标记/取消标记为站:whm 将此点标记为基站。如果您想要显示一个或多个基站位置的热图,这很有用。此时您仍然需要进行基准测试。边框颜色将从黑色变为红色,表示一个基站点。
- 根据您请求的图表和重复基准测试的次数,选择
Benchmark并等待几秒钟(或几分钟)。基准测试完成后,圆圈的填充颜色会从灰色变为浅蓝色。- 基准测试结果在成功完成后会自动保存。
- 或者,如果您想重新运行基准测试,只需使用光标选择任意点;黑色边框变为蓝色。您现在可以右键单击并选择
Benchmark重新捕获指标。
-
现在移动到您要作为基准的新位置,然后在画布中选择粗略的位置。
-
whm 需要至少 4 个点来生成绘图。我强烈建议分析尽可能多的点以提高热图的准确性。
-
完成后单击
Save Results以将指标保存到文件。然后,您可以按 绘制您的指标Plot。
从以前的状态恢复
要从以前的基准测试状态恢复,只需重复最初用于运行基准测试的命令。所有结果都存储在用户最初指定的配置文件中。
绘图
whm 还在绘图时为用户提供额外的命令行参数。
要生成带有自定义标志的图,您可以使用whm plot命令指定它们。
$ whm plot -m ./examples/sample_floor_map.jpg -c config.json -l 100 -d 300 -f png
使用的命令行选项:
-m或者--map是循环地图的路径。-c或者--config是您之前引导的配置文件的路径。-l或--levels(可选)是等高线/区域的数量和位置。默认 (100)-d或--dpi(可选)是以每英寸点数为单位的图形分辨率。默认 (300)-f或--format(可选)用于指定生成图的导出文件格式。默认 (png)。支持的选项包括(png、pdf、ps、eps、svg)
用户运行命令的目录将包含用户在引导期间请求的图形。
例子
示例文件夹中提供了示例配置,包括基准测试结果和生成的图。
贡献
欢迎请求请求。对于重大更改,请先打开一个问题讨论您想要更改的内容。
请确保适当地运行测试。