读取windows中网络配置信息
import java.io.*;public class GetPhysicalAddress extends Thread{ String xcmd="ipconfig /all"; PrintStream out; StreamGobbler2 errorGobbler; StreamGobbler2 outputGobbler;public static void main(String[] args) { new GetPhysicalAddress(System.out).start();}public GetPhysicalAddress(PrintStream out){ this.out=out;}public void run(){ try { String osName = System.getProperty("os.name" ); String cmd[] = {"cmd.exe","/C",xcmd};//default if(osName.equals("Windows NT")) { cmd = "cmd.exe"; cmd = "/C";//,/C的意義:執行字串中所描述的命令然後結束命令視窗 cmd = xcmd; } else if(osName.equals("Windows XP")) { cmd = "cmd.exe"; cmd = "/C"; cmd = xcmd; } else if( osName.equals( "Windows 95" ) ){ cmd = "command.com" ; cmd = "/C" ; cmd = xcmd; } else if( osName.equals( "Windows 98" ) ) { cmd = "command.com" ; cmd = "/C" ; cmd = xcmd; } else if( osName.equals( "Windows 2000" ) ){ cmd = "cmd.exe" ; cmd = "/C" ; cmd = xcmd; } else if(osName.equals("Windows 2003")) { cmd = "cmd.exe"; cmd = "/C"; cmd = xcmd; } Runtime rt = Runtime.getRuntime(); //out.print("Executing " + cmd + " " + cmd + " " + cmd+"\n"); Process proc = rt.exec(cmd); errorGobbler = new StreamGobbler2(proc.getErrorStream(), "ERROR",out); outputGobbler = new StreamGobbler2(proc.getInputStream(), "OUTPUT", out); errorGobbler.start(); outputGobbler.start(); } catch(NullPointerException e){ e.printStackTrace(); }catch (Exception e) { e.printStackTrace(); } }class StreamGobbler2 extends Thread{ boolean outb=false; InputStream is; PrintStream out; String type2; public StreamGobbler2(InputStream is, String type2, PrintStream out) { this.out=out; this.is = is; this.type2=type2; } public void run() { try { InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String line=null; while ( (line = br.readLine()) != null) out.print(type2 + ">" + line+"\n"); } catch (IOException ioe) { ioe.printStackTrace(); } }}}
页:
[1]