奇怪了,为什么会取不到我机子上更改后的IP?
我想在机子上运行一个程序,有一个功能是使它能获得自己机器的IP地址。而且每格一段时间进行一次轮询,以检查IP地址的改动。我试图手动修改win2000的网络连接内TCP/IP设置,修改IP,并用ping 检验是否成功。但是这段代码在轮询期间,不能捕获修改后的IP,这是为什么呢?
import java.net.*;
import javax.activation.*;
import javax.mail.*;
import java.util.Stack;
public class MainApp extends Thread{
// private InetAddress myMachineAddress;
private Stack stk1;
private MainApp(String aStr) {
this.stk1 = new Stack();
}
public void run(){
System.out.println("Thread beginning");
try {
stk1.push((String)InetAddress.getLocalHost().getHostAddress());
System.out.println(stk1.peek());
}
catch (Exception ex) {
ex.printStackTrace();
System.exit(1);
}
while(true){
System.out.println("feedback IP ...");
try {
if((InetAddress.getLocalHost().getHostAddress()).equals((String)stk1.peek())){
System.out.println("The IP Address has no change");
System.out.println(InetAddress.getLocalHost().getHostAddress());
}
else{
stk1.push(InetAddress.getLocalHost().getHostAddress());
System.out.println(stk1.peek());
}
sleep(5000);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args){
try {
MainApp app = new MainApp();
app.start();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}