回 帖 发 新 帖 刷新版面

主题:java获取本机的Mac地址问题

import java.io.*; 
import java.net.URL; 
public class MacAddressHelper {
    public MacAddressHelper() { 
    }
    private static String getMyMac() {
        String s = "";
        try {
            String s1 = "ipconfig /all";
            // 相当于在命令行下直接使用ipconfig /all
            Process process = Runtime.getRuntime().exec(s1); 
            BufferedReader bufferedreader = new BufferedReader(new 
InputStreamReader(process.getInputStream()));
            String line = bufferedreader.readLine();
            // 筛选出mac地址
            for(;line != null;) {
                String nextLine = bufferedreader.readLine();
                if(line.indexOf("Physical Address") > 0){ 
                    int i = line.indexOf("Physical Address") + 36; 
                    s = line.substring(i); 
                    break; 
                }
                line = nextLine; 
            }
            bufferedreader.close();
            process.waitFor();
        } catch(Exception exception) {
            s = "";
        }
        return s.trim();
    }
    public static void main(String[] args){ 
        // 显示Mac地址在命令行界面
        System.out.println(MacAddressHelper.getMyMac());
    }
}


[color=FF0000]问题:if(line.indexOf("Physical Address") > 0){ 
                    int i = line.indexOf("Physical Address") + 36; 
                    s = line.substring(i); 
                    break; 
                }
line.indexOf("Physical Address") 是什么意思?为什么要加+ 36?[/color]

回复列表 (共1个回复)

沙发


   line.indexOf("Physical Address") .. 应该是找出  Physical Address  在这行的第几个位置
   加36是因为 Physical Address 在这行的位置加 36 后的就是网关 Mac地址 了!
   我也是新手。。说的不清楚请见量!

我来回复

您尚未登录,请登录后再回复。点此登录或注册