获取MAC地址,java版本

import
 java.net.NetworkInterface
;

import
 java.util.ArrayList
;

import
 java.util.Enumeration
;

import
 java.util.List
;

 
public
 class
 TestMac {

 
	/**
	 * @param args
	 * @throws Exception
	 */

	public
 static
 void
 main(
String
[
]
 args)
 throws
 Exception
 {

		List<
String>
 list =
 getMacSinceJDK6(
)
;

		for
 (
String
 s :
 list)
 {

			System
.out
.println
(
s)
;

		}

	}

 
	private
 static
 String
 hexByte(
byte
 b)
 {

		String
 s =
 Integer
.toHexString
(
b)
;

		int
 len =
 s.length
(
)
;

		for
 (
int
 i =
 len;
 i <
 8
;
 i++
)
 {

			s =
 "0"
 +
 s;

		}

		return
 s.substring
(
6
)
.toUpperCase
(
)
;

	}

 
	/**
	 * 获取MAC地址,length为0时,为获取失败,有可能有多个mac地址
	 * 
	 * @since jdk6
	 * @return List<String>
	 */

	private
 static
 List<
String>
 getMacSinceJDK6(
)
 {

		List<
String>
 list =
 new
 ArrayList<
String>
(
)
;

		try
 {

			Enumeration<
NetworkInterface>
 el =
 NetworkInterface
					.getNetworkInterfaces
(
)
;

			while
 (
el.hasMoreElements
(
)
)
 {

				byte
[
]
 mac =
 el.nextElement
(
)
.getHardwareAddress
(
)
;

				if
 (
mac ==
 null
 ||
 mac.length
 ==
 0
)
 {

					continue
;

				}

				StringBuffer
 sb =
 new
 StringBuffer
(
)
;

				for
 (
byte
 b :
 mac)
 {

					sb.append
(
hexByte(
b)
)
;

					sb.append
(
"-"
)
;

				}

				sb.deleteCharAt
(
sb.length
(
)
 -
 1
)
;

				list.add
(
sb.toString
(
)
)
;

			}

		}
 catch
 (
Exception
 e)
 {

			e.printStackTrace
(
)
;

		}

		return
 list;

	}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值