#devices #notifications #telegram #networking #arp #connect #bot

app houserat

当已知设备连接到网络时发出通知

4 个版本 (重大更新)

0.4.0 2019年9月11日
0.3.1 2019年9月7日
0.2.0 2019年8月23日
0.1.0 2019年8月22日

#11 in #arp

GPL-3.0-or-later

39KB
829

🐀 家鼠 Rat

一个守护程序,监控来自已知设备的 DHCP 和 ARP 数据包的网络流量,并在这些设备连接或断开时通过 Telegram 发送通知。

🚀 使用方法

  1. 创建一个 Telegram 机器人 并保存其令牌。
  2. 使用包管理器安装
    • Arch Linux: AUR,例如 yay -S houserat
    • Cargo: cargo install houserat(注意您需要手动安装服务和配置文件)
  3. /etc/houserat/config.toml 中编辑配置,包含机器人令牌、设备和用户信息(示例)。
  4. 启用并启动服务:systemctl enable --now houserat

🤖 机器人配置

一旦您有了您的机器人令牌,您需要获取每个订阅通知的用户聊天 ID。最简单的方法是

  1. 让用户与机器人开始对话或向其发送任何消息。
  2. 在浏览器中打开 https://api.telegram.org/bot<token>/getUpdates(将 <token> 替换为您的机器人令牌)并查找聊天 ID,它应该在 message.chat.id 中,位于 result 数组中。
  3. 将找到的聊天 ID 放入 config.toml 中该用户的 chat_id 字段。
  4. 可选地通过返回 Telegram 的 getUpdates API 方法并添加 ?offset=<update_id+1> 来清除更新列表,其中 update_id 在结果中找到。这将使在重复此过程时查找其他聊天 ID 更容易。

💫 工作原理

Houserat 在设备发送 DHCP 请求数据包时检测连接到网络中的设备。然后,它会通知该设备的订阅者并开始轮询该设备以检测它何时断开连接。由于手机不总是响应 PING 数据包,Houserat 使用所有设备都必须响应的 ARP 请求。

当多个 ARP 请求没有收到响应时,设备被视为断开连接,并向订阅者发送通知。

💤 反垃圾邮件

Houserat 有几个旨在减少通知垃圾邮件的功能

  • 可配置的 冷却时间,在此期间不发送新的通知,例如,如果设备在初始连接后不久重新连接,则只发送一条通知。
  • 可配置的 静默期,在此期间发送消息而不发出声音通知。这可以用来避免在夜间发出嘈杂的 Telegram 通知。

依赖项

~25–36MB
~638K SLoC