java如何获取mac地址?

Python014

java如何获取mac地址?,第1张

以windows举例。

运行命令" cmd ipconfig /all"就会出现以下结果

Physical Address. . . . . . . . . : 20-CF-30-9A-60-EE

java就能过这样的命令来获取。以下是示例。

import java.io.BufferedReader

import java.io.IOException

import java.io.InputStreamReader

public class TestMac

{

public static void main(String[] args) {

System.out.println("Operation System=" + getOsName())

System.out.println("Mac Address=" + getMACAddress())

System.out.println("通过ip获取mac"+getMACAddress("192.168.1.101"))

}

public static String getOsName() {

String os = ""

os = System.getProperty("os.name")

return os

}

public static String getMACAddress() {

String address = ""

String os = getOsName()

if (os.startsWith("Windows")) {

try {

String command = "cmd.exe /c ipconfig /all"

Process p = Runtime.getRuntime().exec(command)

BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()))

String line

while ((line = br.readLine()) != null) {

if (line.indexOf("Physical Address") >0) {

int index = line.indexOf(":")

index += 2

address = line.substring(index)

break

}

}

br.close()

return address.trim()

} catch (IOException e) {

}

} else if (os.startsWith("Linux")) {

String command = "/bin/sh -c ifconfig -a"

Process p

try {

p = Runtime.getRuntime().exec(command)

BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()))

String line

while ((line = br.readLine()) != null) {

if (line.indexOf("HWaddr") >0) {

int index = line.indexOf("HWaddr") + "HWaddr".length()

address = line.substring(index)

break

}

}

br.close()

} catch (IOException e) {

}

}

address = address.trim()

return address

}

public static String getMACAddress(String ipAddress) {

String str = "", strMAC = "", macAddress = ""

try {

Process pp = Runtime.getRuntime().exec("nbtstat -a " + ipAddress)

InputStreamReader ir = new InputStreamReader(pp.getInputStream())

LineNumberReader input = new LineNumberReader(ir)

for (int i = 1i <100i++) {

str = input.readLine()

if (str != null) {

if (str.indexOf("MAC Address") >1) {

strMAC = str.substring(str.indexOf("MAC Address") + 14,

str.length())

break

}

}

}

} catch (IOException ex) {

return "Can't Get MAC Address!"

}

//

if (strMAC.length() <17) {

return "Error!"

}

macAddress = strMAC.substring(0, 2) + ":" + strMAC.substring(3, 5)

+ ":" + strMAC.substring(6, 8) + ":" + strMAC.substring(9, 11)

+ ":" + strMAC.substring(12, 14) + ":"

+ strMAC.substring(15, 17)

//

return macAddress

}

}

剑天梦的回答原理和我这个一样,都是通过Process 执行命令。 我直接补充到答案里了。不过

我这边运行那个命令出来的结果很多,那么花的时间就长了。优点是能够获取别人的mac地址 。

Macbookpro比较适合java开发,java开发推荐千锋教育,千锋教育现已拥有成熟独立的项目库,项目均1:1引进大厂项目,授课采用 CREA 项目研发模型,即 Cooperation、Research、Exercise、Alliance,以项目促进高质量教学。

Java 是几乎所有类型的网络应用程序的基础,也是开发和提供嵌入式和移动应用程序、游戏、基于 Web 的内容和企业软件的全球标准。Java 在全球各地有超过 900 万的开发人员,使您能够高效地开发、部署和使用精彩的应用程序和服务。从笔记本电脑到数据中心,从游戏控制台到科学超级计算机,从手机到互联网,Java 无处不在.

想要了解更多Java开发的相关信息,推荐咨询千锋教育。千锋企合作部整合大量企业客户资源,紧抓当下企业需求,将技术和项目完美结合千锋课程体系,力求培养更多优质人才服务企业,不断提升学员竞争力,链接企业用人标准的培训课程及实战项目,让企业招聘用人的技术要求与千锋学员的技术充分对接。