获取mac地址

原创 2016年06月02日 11:13:17

1、通过ifconfig去获取mac地址(需要busybox,有些情况下获取不到



 public static String getMacAddress() {
        String result = "";
        String Mac = "";
        result = callCmd("busybox ifconfig eth0", "HWaddr");
        //如果返回的result == null,则说明网络不可取
        if (result == null) {
            return "eth0 is null";
        }

        //对该行数据进行解析
        //例如:eth0      Link encap:Ethernet  HWaddr 00:16:E8:3E:DF:67
        if (result.length() > 0 && result.contains("HWaddr") == true) {
            Mac = result.substring(result.indexOf("HWaddr") + 6, result.length() - 1);
            if (Mac.length() > 1) {
                LogDebugUtil.e(TAG, Mac.trim() + "=====");
                LogDebugUtil.e(TAG,readSysfs("/sys/class/net/eth0/address")+ "+++");
                return Mac.trim();
            }

        }


        return result;
    }


  /*
       * 通过ifconfig去获取mac地址。。。
       *
       */

    public static String callCmd(String cmd, String filter) {
        String result = "";
        String line = "";
        try {
            Process proc = Runtime.getRuntime().exec(cmd);
            InputStreamReader is = new InputStreamReader(proc.getInputStream());
            BufferedReader br = new BufferedReader(is);

            //执行命令cmd,只取结果中含有filter的这一行
            while ((line = br.readLine()) != null && line.contains(filter) == false) {
                //result += line;
            }

            result = line;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;

2、通过/sys/class/net/eth0/address 获取


 public static String getMacAddress() {
        String Mac = readSysfs("/sys/class/net/eth0/address");
        if (Mac == null) {
            return "eth0 is null";
        }
        return Mac;
    }

    private static String readSysfs(String path) {
        if (!new File(path).exists()) {
            return null;
        }
        String str;
        StringBuilder value = new StringBuilder();

        try {
            FileReader fr = new FileReader(path);
            BufferedReader br = new BufferedReader(fr);
            try {
                while ((str = br.readLine()) != null) {
                    value.append(str);
                }
                fr.close();
                br.close();
                return value != null ? value.toString() : null;
            } catch (IOException e) {
                e.printStackTrace();
                return null;
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            return null;
        }
    }
版权声明:

java 获取本机mac地址

  • 2017年11月23日 15:08
  • 2KB
  • 下载

java 获取本机mac地址

  • 2016年01月11日 15:28
  • 2KB
  • 下载

根据mac地址获取生产厂商

网卡MAC码是由全球惟一的一个固定组织来分配的,未经认证和授权的厂家无权生产网卡。 每块网卡都有一个固定的卡号,并且任何正规厂家生产的网卡上都直接标明了卡号, 一般为一组12位的16进制数。其中前...

mac地址获取小工具

  • 2015年08月22日 22:26
  • 1.66MB
  • 下载

window下c获取MAC地址

  • 2015年11月27日 19:43
  • 639B
  • 下载

C#通过Web获取客户端的IP与Mac地址实现

一、思路(主要用于局域网内)     通过Web获取客户端的IP地址较简单,从客户端向web服务器发送的数据报中(Request对象)中即可解析出,但实际应用中,还要考虑代理服务器,路由器的转发等等。...

获取网卡MAC地址

  • 2013年02月02日 10:45
  • 4KB
  • 下载

MAC地址获取

  • 2013年05月03日 15:57
  • 4.75MB
  • 下载

【BLE】CC2541获取设备的MAC地址实验

安卓调试工具扫描时直接显示就是MAC地址。 苹果设备是以UUID的方式显示。 所以我们直接用安卓设备来测试。我们连接时可以知道主机的地址。 变量是gapRole_ConnectedDevAddr...

获取自己ip地址和MAC

  • 2012年12月11日 22:01
  • 689KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:获取mac地址
举报原因:
原因补充:

(最多只允许输入30个字)