1

有没有办法找到:

  1. 计算机名称
  2. 操作系统
  3. 硬件类型(笔记本电脑或台式机)

java中给定的IP或MAC地址。我一直在接受一项任务来获取这些数据。我真的很感激代码示例,或者如果您知道任何可以使用的库。例如:

如果我要使用同一网络上计算机的 IP 地址。如果可能的话,我想知道计算机的名称以及他们正在使用的操作系统以及其他硬件元数据。

4

3 回答 3

0
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 输出,但我会把选择权留给你

于 2013-08-01T12:27:39.127 回答
0

获取mac

正确的方法是使用ARP协议,但它位于数据链路层,Java 不提供直接的 API 访问。因此,您必须采用本地方式才能找到一个好的解决方案。使用jNetPcap来访问它。

获取计算机名称和操作系统

这将要求您利用一些提供该数据的协议。 NBT提供这种数据。

于 2013-08-01T13:26:37.513 回答
0

如果您试图找出与 IP 地址关联的主机名,请使用InetAddress#getHostName(),尽管这仅在本地网络具有注册反向 DNS 的主机时才有效。找出另一台主机的操作系统需要您运行的服务告诉您或通过指纹进行推断,这在 Java 中不可用,也不完全可靠。

于 2013-08-01T13:31:41.910 回答