java如何能读取Win7的mac地址 java如何能读取Win7的mac地址??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在程序中运行一个外部命令,将该命令的运行结果作为一个流(Stream),读取并分析之,进而实现获取MAC地址。public class ReadMAC { public static String physicalAddress = "read MAC error!"; public ReadMAC() { } public static String checkPhysicalAddress() { try { String line; Process process = Runtime.getRuntime().exec("cmd /c ipconfig /all"); BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(process.getInputStream())); while ((line = bufferedReader.readLine()) != null) { if (line.indexOf("Physical Address. . . . . . . . . :") != -1) { if (line.indexOf(":") != -1) { physicalAddress = line.substring(line.indexOf(":") + 2); break; // 找到MAC,推出循环 } } } process.waitFor(); } catch (Exception e) { e.printStackTrace(); } return physicalAddress; } public static void main(String[] args) { System.out.println("本机的MAC地址是: " + ReadMAC.checkPhysicalAddress()); }} 有java的API吗?读取XP是有API函数的?读取WIN7的时候,这个API就不管用了 你们玩的都是最新的,嘿嘿..我out了 哦,现在看来JDK还真好像不支持这个WIN7还。 java 不能获得 MAC 地址 public void getOsType() { OStype = System.getProperty("os.name").toLowerCase(); SystemMac(); } private void SystemMac() { BufferedReader bufferedReader = null; Process process = null; mac = new String[10]; try { int count = 0; if (OStype.indexOf("window")>-1) { process = Runtime.getRuntime().exec("getmac /fo csv /nh"); bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line = null; while ((line = bufferedReader.readLine()) != null) { String[] result = line.split(","); if (result[0].indexOf("-") < 0) continue; mac[count] = result[0].replace('"', ' ').trim(); count++; } } else { process = Runtime.getRuntime().exec("ip link show eth0 "); bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line = null; int index = -1; while ((line = bufferedReader.readLine()) != null) { index = line.toLowerCase().indexOf("link/ether"); int endindex = line.toLowerCase().indexOf("brd"); if (index >= 0) { mac[count] = line.substring(index + "link/ether".length() + 1, endindex).trim(); } count++; } } } catch (IOException e) { logger.error("CopyRight error:", e); } finally { try { if (bufferedReader != null) { bufferedReader.close(); } } catch (IOException e1) { logger.error("Mac error:", e1); } bufferedReader = null; process = null; } }参考一下 java可以获得调用XP系统API取得吧 如果能调用 XP 系统的 API 的话,那肯定也能调用 Windows 7 系统的 API,我想微软基本上不会把这种很底层、很核心的函数给改掉。 一个循环的问题!求围观啊 java如何制作一个工具jar 请教关于java程序用命令行运行的问题,急请各位高人解答或指点 paint 可以在panel上写一个字符串吗 rt.jar 应该是设定在classpath下,是吗? ftp不能下载exe文件问题?急!! 请问哪个类可以将日期相加,然后输出再输出准确的日期? 从数据库中读出的字符串只能显示一行 关于Map替换得思路 javabean 如何访问 web.xml?? 能不能搞个硬盘版 jvm ACTION中if语句不能识别
public static String physicalAddress = "read MAC error!"; public ReadMAC() {
} public static String checkPhysicalAddress() {
try {
String line;
Process process = Runtime.getRuntime().exec("cmd /c ipconfig /all");
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
while ((line = bufferedReader.readLine()) != null) {
if (line.indexOf("Physical Address. . . . . . . . . :") != -1) {
if (line.indexOf(":") != -1) {
physicalAddress = line.substring(line.indexOf(":") + 2);
break; // 找到MAC,推出循环
}
}
}
process.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
return physicalAddress;
} public static void main(String[] args) {
System.out.println("本机的MAC地址是: " + ReadMAC.checkPhysicalAddress());
}
}
public void getOsType() { OStype = System.getProperty("os.name").toLowerCase(); SystemMac(); } private void SystemMac() { BufferedReader bufferedReader = null; Process process = null; mac = new String[10]; try { int count = 0; if (OStype.indexOf("window")>-1) { process = Runtime.getRuntime().exec("getmac /fo csv /nh"); bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line = null; while ((line = bufferedReader.readLine()) != null) { String[] result = line.split(","); if (result[0].indexOf("-") < 0) continue; mac[count] = result[0].replace('"', ' ').trim(); count++; } } else { process = Runtime.getRuntime().exec("ip link show eth0 "); bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line = null; int index = -1; while ((line = bufferedReader.readLine()) != null) { index = line.toLowerCase().indexOf("link/ether"); int endindex = line.toLowerCase().indexOf("brd"); if (index >= 0) { mac[count] = line.substring(index + "link/ether".length() + 1, endindex).trim(); } count++; } } } catch (IOException e) { logger.error("CopyRight error:", e); } finally { try { if (bufferedReader != null) { bufferedReader.close(); } } catch (IOException e1) { logger.error("Mac error:", e1); } bufferedReader = null; process = null; } }参考一下
如果能调用 XP 系统的 API 的话,那肯定也能调用 Windows 7 系统的 API,我想微软基本上不会把这种很底层、很核心的函数给改掉。