獲取本地主機的MAC地址

前些天,有篇文章,準確的說是代碼放到csdn的博客上,本是學習的一個筆記,但是既然關心的人很多,於是再一次把它轉貼過了,那個博客已經不再用了。
1/*
 2 FileName:MACHomework.java
 3 Author:流浪小子
 4 Date:2004-7-5
 5 E-mail:[email protected]
 6 Purpose:獲取本地主機的MAC地址
 7 */

 8import java.io.*;
 9import java.util.*;
10
11public class Main {
12    static private final int MACLength = 18;
13
14    public static void main(String args[]) {
15        System.out.print("本機的物理地址是:");
16        System.out.println(getMACAddress());
17    }

18
19    static public String getMACAddress() {
20        SysCommand syscmd = new SysCommand();
21        //系統命令
22        String cmd = "cmd.exe /c ipconfig/all";
23        Vector result;
24        result = syscmd.execute(cmd);
25        return getCmdStr(result.toString());
26    }

27
28    static public String getCmdStr(String outstr) {
29        String find = "Physical Address. . . . . . . . . :";
30        int findIndex = outstr.indexOf(find);
31        if (findIndex == -1{
32            return "未知錯誤!";
33        }
 else {
34            return outstr.substring(findIndex + find.length() + 1, findIndex
35                    + find.length() + MACLength);
36        }

37    }

38}

39
40//SysCommand類
41class SysCommand {
42    Process p;
43
44    public Vector execute(String cmd) {
45        try {
46            Start(cmd);
47            Vector vResult = new Vector();
48            DataInputStream in = new DataInputStream(p.getInputStream());
49            BufferedReader myReader = new BufferedReader(new InputStreamReader(
50                    in));
51            String line;
52            do {
53                line = myReader.readLine();
54                if (line == null{
55                    break;
56                }
 else {
57                    vResult.addElement(line);
58                }

59            }
 while (true);
60            myReader.close();
61            return vResult;
62        }
 catch (Exception e) {
63            return null;
64
65        }

66
67    }

68
69    public void Start(String cmd) {
70        try {
71            if (p != null{
72                kill();
73            }

74            Runtime sys = Runtime.getRuntime();
75            p = sys.exec(cmd);
76
77        }
 catch (Exception e) {
78
79        }

80    }

81
82    public void kill() {
83        if (p != null{
84            p.destroy();
85            p = null;
86        }

87    }

88
89}

90
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章