|
|
|
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[0] = "cmd.exe"; cmd[1] = "/C";//,/C的意義:執行字串中所描述的命令然後結束命令視窗 cmd[2] = xcmd; } else if(osName.equals("Windows XP")) { cmd[0] = "cmd.exe"; cmd[1] = "/C"; cmd[2] = xcmd; } else if( osName.equals( "Windows 95" ) ) { cmd[0] = "command.com" ; cmd[1] = "/C" ; cmd[2] = xcmd; } else if( osName.equals( "Windows 98" ) ) { cmd[0] = "command.com" ; cmd[1] = "/C" ; cmd[2] = xcmd; } else if( osName.equals( "Windows 2000" ) ) { cmd[0] = "cmd.exe" ; cmd[1] = "/C" ; cmd[2] = xcmd; } else if(osName.equals("Windows 2003")) { cmd[0] = "cmd.exe"; cmd[1] = "/C"; cmd[2] = xcmd; } Runtime rt = Runtime.getRuntime(); //out.print("Executing " + cmd[0] + " " + cmd[1] + " " + cmd[2]+"\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(); } } }} |
|