如何通过 Java 应用程序 start/stop 无线路由器?

How can I start/stop a Wireless Router through a Java Application?

我的家用路由器现在遇到了问题。我想编写一个小应用程序,以确保如果在过去 30 分钟内没有数据包传输,路由器将 stop/switch 关闭。有办法吗?

准确地说,我想通过 Java 程序关闭我的 router/start 它,拼命寻求一些有经验的编码员的建议。

欢迎任何帮助。

谢谢

我想答案是,这取决于你有什么样的路由器,以及它提供什么样的接口来控制它。

据我所知,我自己的路由器没有 API 允许通过 Java 程序直接访问它(尽管你的可能不同)。

我的路由器确实有一个网络界面,可以通过 HTTP 访问。可以想象,通过发出正确的 post 请求,我将能够关闭我的路由器。我想你可能会发现你的相似。

编辑(添加文本)

要使用网络界面,您需要先找到网络服务器的 IP - 可能是 192.168.1.1 或 192.168.1.254。在浏览器中输入此内容以获取控制面板并找到关闭路由器的按钮。在开发人员工具中打开网络选项卡的情况下按下此按钮(如果您不确定这意味着什么,请使用 google)并捕获它使用的 url。

现在您有了 IP 和请求,您可以模仿它并使用您的 Java 代码直接发送相同的请求。又去网上看看怎么看。例如

结束编辑

您遇到的另一个问题是监控进出路由器的流量。您可以通过多种方式做到这一点。在我的脑海中,我建议使用原始套接字来侦听所有流量并监视通过设备 运行 您的 Java 程序的 Web 界面的所有内容。或者,您可以使用像 TCPDump 这样的现有解决方案,它会做同样的事情。

你问的问题很宽泛,有很多合理的答案——这也是一个大问题——所以我试图提供一些合理的想法来帮助你入门,而不是实际为你编写代码.

希望这对您有所帮助。