因为工作原因,我所在的环境ip不固定,总是换来换取的,子网掩码,默认网关,DNS等也都是换来换取的,想知道怎么能动态的获取这些信息?通过java代码能实现吗?(我的电脑是自动获取ip的) 

解决方案 »

  1.   

    有两个可行的办法 一是用java里的net包 而是执行"ipconfig /all"命令 然后截取输出流 然后分析 得出你要的ip地址 mac地址等
      

  2.   

    随便做一个可以显示一些信息的界面,然后这个类启动一个新的线程,两个线程通过管道通信,在新线程里面用runTime执行ipconfig/all,把信息传给主线程
    就如同在编译器里面执行程序,会把cmd界面的内容传到console窗口
      

  3.   

    不行 我刚试了试 ipconfig /all获取的地址不对  这个地方给我就开了一个ip  当本地连接是自动获取的时候ipconfig /all获得的地址根本不能用  
    怎么能获取可用的这个ip?
      

  4.   


    import java.io.*;
    public class Test{
      public static void main(String args[]){
            String cmd="ipconfig";
    try{
      Process proc = Runtime.getRuntime().exec(cmd);
      BufferedReader theReader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
      String infor ="";
      while((infor=theReader.readLine())!=null){
       if (infor.indexOf("IP Address")!=-1){
       System.out.println("IP:"infor.substring(infor.indexOf(":")+1));
       break;
       } 
      }
      theReader.close();
      proc.destroy();
      }catch(Exception e){e.printStackTrace();}
      }
    }
      

  5.   

    用requst类来获取自己的IP就得啦。。
      

  6.   

    goldenfish1919  你好 你的这个方法 用到了外部的jar包了没?
    我载入后infor.substring(infor.indexOf(":")+1  报错是怎么回事?