`
flymichael
  • 浏览: 20184 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

(转)Java获得CPU序列号和网卡Mac地址

阅读更多

/**
 * 利用Runtime call操作系统的命令,具体的命令取决于不同的操作系统,注意不要调用Runtime.getRuntime().exec(String)接口,要用Runtime.getRuntime().exec(String[])这个接口,不然复杂命令的执行会有问题。例子如下(拿cpu个数,其他类似):
 * 定义命令:
 * WindowsCmd ="cmd.exe /c echo %NUMBER_OF_PROCESSORS%";//windows的特殊
 * SolarisCmd = {"/bin/sh", "-c", "/usr/sbin/psrinfo | wc -l"};
 * AIXCmd = {"/bin/sh", "-c", "/usr/sbin/lsdev -Cc processor | wc -l"};
 * HPUXCmd = {"/bin/sh", "-c", "echo \"map\" | /usr/sbin/cstm | grep CPU | wc -l "};
 * LinuxCmd = {"/bin/sh", "-c", "cat /proc/cpuinfo | grep ^process | wc -l"};
 *
 * 然后判断系统:
 * os = System.getProperty("os.name").toLowerCase();
 *
 * 根据不同的操作系统call不同的命令。
 */

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.LineNumberReader;

public class GetMACAddress {
 public 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 = 1; i < 100; i++) {
    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;
 }

 public static void main(String[] args) {
  GetMACAddress getMACAddress = new GetMACAddress();
  System.out.println(getMACAddress.getMACAddress("172.18.8.225"));

  try {
   java.lang.Process proc = Runtime.getRuntime().exec("ipconfig /all");
   InputStream istr = proc.getInputStream();
   byte[] data = new byte[1024];
   istr.read(data);
   String netdata = new String(data);
   System.out.println("Your Mac Address=" + procAll(netdata));
  } catch (IOException e) {
   System.out.println("error=" + e);
  }
 }

 public static String procAll(String str) {
  return procStringEnd(procFirstMac(procAddress(str)));
 }

 public static String procAddress(String str) {
  int indexof = str.indexOf("Physical Address");
  if (indexof > 0) {
   return str.substring(indexof, str.length());
  }
  return str;
 }

 public static String procFirstMac(String str) {
  int indexof = str.indexOf(":");
  if (indexof > 0) {
   return str.substring(indexof + 1, str.length()).trim();
  }
  return str;
 }

 public static String procStringEnd(String str) {
  int indexof = str.indexOf("\r");
  if (indexof > 0) {
   return str.substring(0, indexof).trim();
  }
  return str;
 }
}

分享到:
评论
2 楼 EdwardWorld 2009-08-07  
cmd.exe /c echo %NUMBER_OF_PROCESSORS%
这个命令是获得CPU数量,我知道这篇文章是你转载的,但是转载前最好试验一下。
1 楼 EdwardWorld 2009-08-07  
你根本就没有测试,那是获得CPU序列号吗?

相关推荐

    yolov5s nnie.zip

    yolov5s nnieyolov5-nnieyolov5s nnieYOLOv5 pytorch -> onnx -> caffe -> .wk 1、模型是yolov5s,将focus层替换成stride为2的卷积层。reshape和permute层也做了调整。具体的修改过程可以参考这个大佬的文章https://blog.csdn.net/tangshopping/article/details/1100386052、模型是在hi3559av100上跑的,mapper版本是1.2。3、用法mkdir buildcd buildcmake -DCMAKE_TOOLCHAIN_FILE=../hi3559.toolchain.cmake ..make -j4./yolo_nnie参考https://blog.csdn.net/tangshopping/article/details/110038605watermelooon/nnie_yolohttps://github.com/ultralytics/yolov5https://githu

    基于uni-app+uview-ui开发的校园云打印系统微信小程序项目源码+文档说明

    基于uni-app+uview-ui开发的校园云打印系统微信小程序项目源码+文档说明,本资源中的源码都是经过本地编译过可运行的,评审分达到98分,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、毕业设计、期末大作业和课程设计使用需求,如果有需要的话可以放心下载使用。 基于uni-app+uview-ui开发的校园云打印系统微信小程序项目源码+文档说明,本基于uni-app+uview-ui开发的校园云打印系统微信小程序项目源码+文档说明资源中的源码都是经过本地编译过可运行的,评审分达到98分,基于uni-app+uview-ui开发的校园云打印系统微信小程序项目源码+文档说明资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、毕业设计、期末大作业和课程设计使用需求,如果有需要的话可以放心下载使用。 本资源中的源码都是经过本地编译过可运行的,评审分达到98分,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、毕业设计、期末大作业和课程设计使用需求,如果有需要的话可以放心下载使用。本资源中的源码都是经过本地编译过可运行的,评审分达到98分

    使用Java写的一个简易的贪吃蛇小游戏.zip

    使用Java写的一个简易的贪吃蛇小游戏.zip数据

    计算机网络概述.docx

    计算机网络概述概念:网络把主机连接起来,而互联网是把多种不同的网络连接起来,因此互联网是网络的网络。计算机网络主要包括三个部分:计算机(包括客户端、服务器)网络设备(路由器、交换机、防火墙等)传输介质(有线和无线) ISP 互联网服务提供商ISP可以从互联网管理机构获得许多IP地址,同时拥有通信线路以及路由器等联网设备,个人或机构向ISP缴纳一定的费用就可以接入互联网。 目前的互联网是一种多层次ISP结构,ISP根据覆盖面积的大小分为主干ISP、地区ISP和本地ISP。互联网交换点IXP允许两个ISP直接相连而不用经过第三个ISP。 主机之间的通信方式 1、客户-服务器(C/S) 客户即是服务请求方,服务器是服务提供方。2、对等(P2P) 不区分客户和服务器 时延总时延=发送时延+传播时延+处理时延+排队时延计算机网络体系结构OSI:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层五层协议:应用层、运输层、网络层、数据链路层、物理层TCP/IP:应用层、运输层、网际层、网络接口层 带通调制 模拟信号是连续的信号,数字信号是离散的信号。带通调制把数字信号转换为模拟信号。数据

    数学建模学习资料 姜启源数学模型课件 M06 稳定性模型 共46页.pptx

    数学建模学习资料 姜启源数学模型课件 M06 稳定性模型 共46页.pptx

    【IEA-2024研报】到2030年满足中国电力系统灵活性需求(英).pdf

    行业研究报告、行业调查报告、研报

    游戏账号交易小程序 微信小程序+SSM毕业设计 源码+数据库+论文+启动教程.zip

    游戏账号交易小程序 微信小程序+SSM毕业设计 源码+数据库+论文+启动教程 项目启动教程:https://www.bilibili.com/video/BV1BfB2YYEnS

    结合 Swin Transformer 的小物体检测算法用于茶芽检测.zip

    结合 Swin Transformer 的小物体检测算法用于茶芽检测STF-YOLO(基于yolov8)基于yolov8的模型改进包含多个backbone和head改进,以及多种注意力机制网络结构策略在cfg/models/v8里2024.4.28 朋友反应出现了问题,这里我把我所有的文件上传到STF-YOLO包库里ultralytics文件夹由于ultralytics使用的一键安装模式,本地再下载,会和环境里的包冲突我的方法就是用ultralytics替换环境里的ultralytics包,然后更改ultralytics包里的文件、代码做法比如说我使用的Ubuntu,所以只要将我新上传的ultralytics文件夹替换掉\wsl.localhost\Ubuntu-20.04\home\ling\miniconda3\envs\torch\lib\python3.8\site-packages目录下的ultralytics即可在本地虚拟环境的找一下conda里的环境里的包就行物体检测yolov8模型改进《结合 Swin Transformer 的茶芽

    有关如何在您自己的网站的任何位置添加 Google 一键注册的演示.zip

    有关如何在您自己的网站的任何位置添加 Google 一键注册的演示内联 Google 一键注册要运行演示,请克隆 repo,然后启动服务器python -m SimpleHTTPServer 8080index.html展示如何将Google 一键注册(又名 Google Yolo)纳入你自己的注册表单中,或纳入你网站的任何合理位置,以帮助提高你的注册转化率 Google One-Tap 的问题默认情况下,Google 一键注册会以弹出窗口的形式显示position: fixed在您的网站上。如果该窗口遮挡了重要信息或导航,可能会让用户感到失望。如果这是用户第一次看到 Google 一键注册,他们可能也会感到困惑,因为如今大多数“使用 Google 登录”体验都与传统注册表单并列,而不是独立于自己的弹出窗口。 来自 hipmunk.com 的示例展示了 Google One-tap 的开箱即用体验。解决方案我们建议将 Google One-tap 包装起来,<iframe>以便您可以将其包含在您自己的注册表单中,或包含在对您的网站有意义的任何位置。

    java毕设项目之基于SpringBoot的德百商城停车场管理系统(源码+说明文档+mysql).zip

    环境说明:开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat 开发软件:eclipse/myeclipse/idea Maven包:Maven 浏览器:谷歌浏览器。 项目均可完美运行

    网络训练、图像制作以及部分hend功能是基于pc端实现的,只有主干网络部署在fpga上,片上资源无法支持整个网络所需资源,建议外部添加存储及DDR.zip

    网络训练、图像制作以及部分hend功能是基于pc端实现的,只有主干网络部署在fpga上,片上资源无法支持整个网络所需资源,建议外部添加存储及DDRyolov5-fpga-硬件加速写在前面网络训练、图像制作以及部分head功能是基于pc端实现的,只有主干网络部署在fpga上,片上资源无法支持整个网络所需资源,建议添加外部存储及DDR注意,这里只添加了模块代码,考虑到不同板子对应的eda不同,只将fpga中纯源码给出可,经过仿真无误。添加相关ip核及引脚配置进行组网

    pocketbase.exe

    前端/后端/AI/运维/全栈工程师 常用工具 2024年最新版

    一个Java语言写的俄罗斯方块小游戏 因为作者刚接触Java,正在摸索着学习.zip

    一个Java语言写的俄罗斯方块小游戏。因为作者刚接触Java,正在摸索着学习.zip

    考研冲刺吸引力法则.docx

    冲刺阶段最重要的除了学习,还有心态!也就是我们对待困难,对待即将到来的考试的态度。不知道大家有没有听说过「吸引力法则」这个词。吸引力法则是一种心理学的概念,它主张我们所吸引到自己身边的事物,与我们内心的情绪、信念息息相关。 如果我们内心充满了积极的情绪,那么就会吸引到积极的结果,从而实现我们的目标。相反,如果我们内心是消极的,就会吸引到消极的结果。 这何尝不是一种帮助我们调整心态的好方法。我们想象着自己成功上岸的那一天,然后为了迎接这个结果,不断地努力。现在其实已经进入了考研战役的最关键阶段,我们走过了漫长的备考之路,马上就要是收获的时候。 回顾这一路的备考,我们遇到了许多挑战和困难。有时候,我们会觉得自己已经付出了很多,但是却没有任何回报。有时候,我们会感到孤单、无助,仿佛没有人能够理解我们的痛苦。在接下来的冲刺阶段,我们可能还会遇到更大的挑战,越来越近的考试,越来越紧张的备考氛围。 但是要相信,其实我们并不孤单。在我们的身边,有默默守护的家人,有一起并肩作战的同学,大家都在朝着自己目标不断地前进着。 最重要的是我们一定要相信自己,相信自己考研道路上最强大的武器。

    石头剪刀布VOC标记数据集

    石头剪刀布VOC标记数据集

    【IRENA-2024研报】绿色氢气质量基础设施路线图(英).pdf

    行业研究报告、行业调查报告、研报

    路面泥泞,坑洼,裂缝,路面损坏,马路牙检测 yolov5

    路面泥泞,坑洼,裂缝,路面损坏,马路牙检测 yolov5标记

    BTAJ大厂面试题汇总

    有迷茫没方向、找工作、咨询面试突击班、简历已读不回、跳槽涨薪、提升学习、进大厂等问题的程序员朋友

    TensorFlow 中的 3D YOLO 实现.zip

    TensorFlow 中的 3D YOLO 实现YOLO3DTensorFlow 中的 3D YOLO 实现

    新能源汽车充电插口类型识别-YOLOV9标记,可识别Type1,ccs2的充电标准

    新能源汽车充电插口类型识别-YOLOV9标记,可识别Type1,ccs2的充电标准

Global site tag (gtag.js) - Google Analytics