怎样动态获取ip地址,子网掩码等信息 因为工作原因,我所在的环境ip不固定,总是换来换取的,子网掩码,默认网关,DNS等也都是换来换取的,想知道怎么能动态的获取这些信息?通过java代码能实现吗?(我的电脑是自动获取ip的) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有两个可行的办法 一是用java里的net包 而是执行"ipconfig /all"命令 然后截取输出流 然后分析 得出你要的ip地址 mac地址等 随便做一个可以显示一些信息的界面,然后这个类启动一个新的线程,两个线程通过管道通信,在新线程里面用runTime执行ipconfig/all,把信息传给主线程就如同在编译器里面执行程序,会把cmd界面的内容传到console窗口 不行 我刚试了试 ipconfig /all获取的地址不对 这个地方给我就开了一个ip 当本地连接是自动获取的时候ipconfig /all获得的地址根本不能用 怎么能获取可用的这个ip? 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();} }} 用requst类来获取自己的IP就得啦。。 goldenfish1919 你好 你的这个方法 用到了外部的jar包了没?我载入后infor.substring(infor.indexOf(":")+1 报错是怎么回事? 向数据库插入数据出现将截断字符串或二进制数据错误 关于main函数的4种设想 请求帮助 提取系统时间?? 如何传送这个对象?几层呀:) 问一个很基础的问题! JAVA的输入与字符串问题 请问一个关于JTable得简单问题 java有将 PPT 转成 txt 的好的工具包吗? 我的代码是怎么进入死循环的,为什么有两个线程运行一会就唤不醒了 JTable 如何显示可以调整行高的行头? 大家帮我看一下这个简单的程序
就如同在编译器里面执行程序,会把cmd界面的内容传到console窗口
怎么能获取可用的这个ip?
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();}
}
}
我载入后infor.substring(infor.indexOf(":")+1 报错是怎么回事?