2014-07-14 111 views

回答

0

假設在這種情況下,「序列號」的設備的MAC地址,在命令提示符/殼:

ping <ip> 
arp -a 

,你會得到MAC <列表 - > IP映射。這將適用於Windows,MacOS和Linux。

雖然可以運行這些命令,但通過Runtime.exec()解析輸出,但請注意輸出的格式因操作系統而異。

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

你可以嘗試這樣的

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

東西使用的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. 網絡路由和連接表。

核心API是在純C中實現的,目前已經爲Java,Perl和C#實現了綁定。

有關下載& API的更多信息:Hyperic SIGAR API

使用VBS:

主板序列號:

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