WOL 网络唤醒 应用存在BUG
1. 应用信息
| 应用名称 |
应用版本 |
开发者 |
| WOL 网络唤醒 |
1.2.7 |
Max Li |
2.存在的问题
该应用的作用是通过飞牛OS发送WoL数据包唤醒局域网中其他设备。
在该应用的设置中存在三项设置,分别为
1.应用访问密码 WOL_PASSWORD
2.是否开启主动扫描 WOL_AUTO_SCAN
3.自动扫描的间隔(分钟) WOL_SCAN_INTERVAL
但是实测发现,主动扫描的开关和扫描间隔都完全没有效果,导致我的网络中充斥着该应用不断发起的遍历式ARP扫描。
我借助AI工具查阅了该应用的部分源代码并进行了一些抓包测试,发现上述的设置项均已通过飞牛作为环境变量传入应用并成功读取。
然而,在应用后续的逻辑中,似乎没有使用到这些变量,而是将自动扫描和扫描间隔写死在代码中:
// @appcenter/wol/server/main.go
func (a *App) startScheduler() {
ticker := time.NewTicker(20 * time.Second)
// Start an immediate status check
go a.updateDeviceStatus()
for range ticker.C {
...
a.updateDeviceStatus()
}
}
func (a *App) updateDeviceStatus() {
// Send UDP sweep to populate ARP before checking
populateARPCache()
time.Sleep(2 * time.Second)
activeDevices, err := scanFromProcARPFile()
...
}
3.解决方法
因为我的Coding水平不佳,这里只提供一个解决思路。期待开发者早日修复这个问题。
只需要在应用的逻辑中加入对环境变量的判断让这个主动扫描开关和扫描间隔真正起效就可以了。