有什么方法在IP地址改变时用Java接收通知吗?
例如,当机器从dhcp服务器接收到新地址时。我想避免轮询,因为机器已经承受了很重的负荷。从我目前的发现来看,这似乎是不可能的。
在纯java中工作的东西最好,但是linux特定的方式也可以。
编辑:我应该提到IP地址是本地机器的地址,而不是远程服务器的地址。即。当正在运行java程序的机器的IP地址发生更改时,我希望收到通知。
发布于 2015-01-13 09:28:24
试试这个:
InetAddress old = InetAddress.getLocalHost();
while(true) {
InetAddress new = InetAddress.getLocalHost();
if(!old.toString().equals(new.toString())) {
System.out.println("IP has changed to: " + new.toString());
System.out.println("IP was: " + old.toString());
old = new;
}
}
您应该在独立线程中运行此循环,并将(True)更改为布尔字段,您可以从线程外部管理该字段。
https://stackoverflow.com/questions/27918635
复制相似问题