繁体   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