在局域网内中 通过IP地址得到对应的主机名及MAC物理地址

时间:2022-07-30 13:36:30

                   //   这是一个局域网内只通过电脑的IP来得到MAC物理地址


            String mac="";

            process=runtime.exec(    "    arp -a  IP地址   "   );

            //    我并没有发行纯Java来得到MAC物理地址,所以在这里我们需要调用

            //   Windows电脑的 CMD.EXE  来查看对应IP电脑的MAC物理地址

            BufferedInputStream macinputStream=(BufferedInputStream) process.getInputStream();
            byte [  ] macbt =new byte[1024];
            StringBuffer macbuffer=new StringBuffer();
            while((len=macinputStream.read(macbt, 0,macbt.length))!=-1){

                macbuffer.append(new String(macbt, 0, len, "GBK"));

                //   Java可能因为编码的格式与我们编写平台的编码集不同如果相同就可以不用更改

            }

            System.out.println(macbuffer.toString());

            String[] macresult=macbuffer.toString().trim().split("\r\n");
            if(!macbuffer.toString().contains("未找到 ARP")){
                mac=macresult[2].substring(20, 40).trim();

            }

          

           System.out.println(    mac    );


            //  这里是通过IP来得到对应电脑的主机名字(hostname)

            InetAddress inetAddress=InetAddress.getByName(   "   ip地址   "  );

            System.out.println(   inetAddress.getHostName()   );