簡體   English   中英

在java中查找給定IP地址或MAC地址的操作系統名稱,操作系統名稱

[英]Find Computer Name,Operating System name of a given IP address or MAC address In java

有沒有辦法找到:

  1. 電腦名稱
  2. 操作系統
  3. 硬件類型(筆記本電腦或台式機)

用java給出IP或MAC地址。 我一直在負責獲取數據。 我真的很感謝代碼示例,或者如果您知道可以使用的任何庫。 例如:

如果要使用同一網絡上計算機的IP地址。 我想知道計算機的名稱,他們正在使用的操作系統以及其他硬件元數據(如果可能)。

import java.util.Map;

public class EnvMap {
    public static void main (String[] args) {
        Map<String, String> env = System.getenv();
        for (String envName : env.keySet()) {
            System.out.format("%s=%s%n",
                              envName,
                              env.get(envName));
        }
    }
}

我想您需要以下屬性:

COMPUTERNAME
OS

關於MAC地址和IP地址,您有2個選擇:

采用

InetAddress ip;
  try {

    ip = InetAddress.getLocalHost();
    System.out.println("Current IP address : " + ip.getHostAddress());

  } catch (UnknownHostException e) {

    e.e.printStackTrace();

  } 

或使用ipconfig / ifconfig輸出,但我將選擇權留給您

獲取Mac

正確的方法是使用ARP協議,但這位於Java不提供直接API訪問權限的數據鏈路層 因此,您必須本地化才能找到一個好的解決方案。 使用jNetPcap可以訪問此文件。

獲取計算機名稱和操作系統

這將需要您使用提供該數據的某種協議。 NBT提供此類數據。

如果您嘗試查找與IP地址關聯的主機名,請使用InetAddress#getHostName() ,盡管只有在本地網絡中注冊了用於反向DNS的主機時,該方法才有效。 要找到另一台主機的操作系統,您需要運行一項可以告訴您的服務,或者需要通過指紋進行推斷 ,而指紋是Java無法提供的,也不是完全可靠的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM