`

获取MAC地址,java版本

    博客分类:
  • 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;

	}

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics