如何借助ip地址获取硬件设备序列号?

时间:2014-07-14 10:24:49

标签: java

是否有任何方法可以借助ip地址在同一网络中获取硬件设备的序列号?

4 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情

InetAddress address = InetAddress.getByName("192.168.1.55");
NetworkInterface ni = NetworkInterface.getByInetAddress(address);
  if (ni != null) {
     byte[] mac = ni.getHardwareAddress();
     StringBuilder sb = new StringBuilder();
     for (int i = 0; i < mac.length; i++) {
     sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
     }
    System.out.println(sb.toString());
  }

答案 1 :(得分:1)

如果需要网络适配器的MAC地址,可以使用NetworkInterface类获取MAC


    InetAddress address = InetAddress.getByName("192.168.0.1");
    NetworkInterface ni = NetworkInterface.getByInetAddress(address);
    if (ni != null) {
         byte[] mac = ni.getHardwareAddress();
    }

答案 2 :(得分:1)

使用Hyperic SIGAR API: Hyperic的系统信息收集器(SIGAR)是一个用于收集软件清单数据的跨平台API。 SIGAR包括对各种版本和体系结构的Linux,FreeBSD,Windows,Solaris,AIX,HP-UX和Mac OSX的支持。 SIGAR API的用户可以访问库存和监控数据,包括:

  1. 系统内存,交换,cpu,平均负载,正常运行时间,登录。
  2. 每进程内存,cpu,凭据信息,状态,参数,环境,打开文件。
  3. 文件系统检测和指标。
  4. 网络接口检测,配置信息和指标。
  5. 网络路由和连接表。
  6. 核心API在纯C中实现,目前为Java,Perl和C#实现了绑定。

    有关下载和更多信息的详细信息API: Hyperic SIGAR API

    使用VBS:

    MotherBoard序列号:

    String vbs =
         "Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"
        + "Set colItems = objWMIService.ExecQuery _ \n"
        + "   (\"Select * from Win32_BaseBoard\") \n"
        + "For Each objItem in colItems \n"
        + "    Wscript.Echo objItem.SerialNumber \n"
        + "    exit for  ' do the first cpu only! \n"
        + "Next \n";
    

    硬盘序列号:

    String vbs = "Set objFSO = CreateObject(\"Scripting.FileSystemObject\")\n"
                  +"Set colDrives = objFSO.Drives\n"
                  +"Set objDrive = colDrives.item(\"" + drive + "\")\n"
                  +"Wscript.Echo objDrive.SerialNumber";  // see note
    

    示例演示: Get the hard disk serial number or Motherboard serial number

答案 3 :(得分:0)

假设“序列号”在这种情况下是设备的MAC地址,在命令提示符下/ shell:

ping <ip>
arp -a

您将获得MAC&lt; - &gt;的列表IP映射。这适用于Windows,MacOS和Linux。

您可以通过Runtime.exec()运行这些命令并解析输出,但请注意输出的格式因操作系统而异。