检测动态 IP 地址更改
Detect dynamic IP address change
我已经检查了关于这个主题的其他问题,其中大部分建议 运行 检查 IP 地址更改的任务。我是 运行 Jetty 网络服务器中的一项服务。我的问题是,HTTP Web 服务器是否会为它们的工作捕获此类更改?或者它只需要一个 "port" 来绑定。如果 Web 服务器已经进行了该跟踪,那么我可能会尝试将其用作我的应用程序中的触发器。我找不到任何这样说的消息来源。我只是想知道是否已经存在类似的东西。
当 Jetty 启动时,它会创建 1 个(或更多)Jetty ServerConnector
个对象。
这些 ServerConnector
对象使用 Java(和 OS)网络设施(对于 TCP/IP)"bind" 到特定的 host:port
列出传入连接。
如果主机 IP 关闭,则它无法再接受传入连接。
如果主机 IP 发生变化,那实际上是现有主机关闭,并且正在创建一个新主机(在新 IP 上)。
对于像 Jetty 这样的服务器,要响应这种情况,就需要能够连接到 OS 的网络服务并收到此类更改的通知。然后在新 IP 上创建一个新的 ServerConnector
以接受新的传入连接。
Note: existing connections would likely be terminated by the OS.
不幸的是,标准 Java 没有这样的网络配置事件可以挂钩。
但是存在专用 API。
示例:Android 有连接管理器。
Android: Internet connectivity change listener
我已经检查了关于这个主题的其他问题,其中大部分建议 运行 检查 IP 地址更改的任务。我是 运行 Jetty 网络服务器中的一项服务。我的问题是,HTTP Web 服务器是否会为它们的工作捕获此类更改?或者它只需要一个 "port" 来绑定。如果 Web 服务器已经进行了该跟踪,那么我可能会尝试将其用作我的应用程序中的触发器。我找不到任何这样说的消息来源。我只是想知道是否已经存在类似的东西。
当 Jetty 启动时,它会创建 1 个(或更多)Jetty ServerConnector
个对象。
这些 ServerConnector
对象使用 Java(和 OS)网络设施(对于 TCP/IP)"bind" 到特定的 host:port
列出传入连接。
如果主机 IP 关闭,则它无法再接受传入连接。
如果主机 IP 发生变化,那实际上是现有主机关闭,并且正在创建一个新主机(在新 IP 上)。
对于像 Jetty 这样的服务器,要响应这种情况,就需要能够连接到 OS 的网络服务并收到此类更改的通知。然后在新 IP 上创建一个新的 ServerConnector
以接受新的传入连接。
Note: existing connections would likely be terminated by the OS.
不幸的是,标准 Java 没有这样的网络配置事件可以挂钩。
但是存在专用 API。
示例:Android 有连接管理器。 Android: Internet connectivity change listener