写在前面

通常所说查询本机mac地址是以以太网为准的, 也就是网线那个口..这种描述略捞.

但是通过java的getHostAddress获取ip以及getHardwareAddress()方法获取mac时, 需要将网络适配器中多余的连接禁用.

像我笔记本上这种, 打开网络连接发现有好多连接(安装了虚拟机的原因), 此时若不禁用虚拟机的连接即使插上了网线, 执行程序查询出来的还是虚拟机的ip和mac地址.

通过测试有以下结果:

1.连接无线网, 插上网线, 同时启用虚拟机网络连接时, 查询出来的是无线网的ip和mac

2.断开无线网, 启用虚拟机网络连接, 插上网线, 查询出来的是虚拟机的ip和mac

3.断开无线网, 禁用虚拟机网络连接, 插上网线,, 查询出来的才是以太网 本地连接3的ip和mac

下图是本机的网络连接和通过ipconfig/all命令查询出来的结果(虚拟机连接尚未禁用时的截图)

测试代码:

package com.ppms.utils;

import java.net.InetAddress;
import java.net.NetworkInterface; /**
* Created by liangyadong on 2018/7/26 0026.
*/
public class SystemInfo {
public static void main(String[] args) {
System.out.println("Host Name : "+getSystemName());
System.out.println("Host IP : "+getIPAddress());
System.out.println("Host Address : "+getMAC());
} /**
* Method for get System Name
* @return Host name
*/
private static String getSystemName(){
try{
InetAddress inetaddress=InetAddress.getLocalHost(); //Get LocalHost refrence
String name = inetaddress.getHostName(); //Get Host Name
return name; //return Host Name
}
catch(Exception E){
E.printStackTrace(); //print Exception StackTrace
return null;
}
} /**
* method to get Host IP
* @return Host IP Address
*/
private static String getIPAddress(){
try{
InetAddress inetaddress=InetAddress.getLocalHost(); //Get LocalHost refrence
String ip = inetaddress.getHostAddress(); // Get Host IP Address
return ip; // return IP Address
}
catch(Exception E){
E.printStackTrace(); //print Exception StackTrace
return null;
} } /**
* method to get Host Mac Address
* @return Mac Address
*/
private static String getMAC(){
try{
InetAddress inetaddress=InetAddress.getLocalHost(); //Get LocalHost refrence //get Network interface Refrence by InetAddress Refrence
NetworkInterface network = NetworkInterface.getByInetAddress(inetaddress);
byte[] macArray = network.getHardwareAddress(); //get Harware address Array
StringBuilder str = new StringBuilder(); // Convert Array to String
for (int i = 0; i < macArray.length; i++) {
str.append(String.format("%02X%s", macArray[i], (i < macArray.length - 1) ? "-" : ""));
}
String macAddress=str.toString(); return macAddress; //return MAc Address
}
catch(Exception E){
E.printStackTrace(); //print Exception StackTrace
return null;
}
}
}

执行结果:

Host Name : personal
Host IP : 192.168.1.115
Host Address : F0-1E-34-11-DD-66

可以测试一下~

java 获取计算机名称, ip, mac地址的更多相关文章

  1. Java获取主板序列号、MAC地址、CPU序列号工具类

    import java.io.File; import java.io.FileWriter; import java.io.BufferedReader; import java.io.IOExce ...

  2. JAVA获取本机的MAC地址

    /** * 获取本机的Mac地址 * @return */ public String getMac() { InetAddress ia; byte[] mac = null; try { // 获 ...

  3. IP地址、计算机名称、MAC地址如何获取

    以下的操作都在“命令提示窗口”中操作. 已知IP,如何获得计算机名称 方法(1): 使用ping -i ip地址 例如已知地址为192.168.1.168. 那么使用ping -i 192.168.1 ...

  4. JAVA获取计算机的IP、名称、操作系统等信息

    [java] view plaincopyprint? import java.io.BufferedReader; import java.io.InputStream; import java.i ...

  5. java获取硬盘ID以及MAC地址

    http://blog.csdn.net/coolwzjcool/article/details/6698327 版权声明:本文为博主原创文章,未经博主允许不得转载. 为了达到软件注册,或者说软件和电 ...

  6. java获取服务器的ip和地址

    HttpServletRequest httpRequest=(HttpServletRequest)request; String strBackUrl = "http://" ...

  7. 通过js获取计算机内网ip,计算机名,mac地址

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  8. JAVA获取本机IP和Mac地址

       在项目中,时常需要获取本机的Ip或是Mac地址,进行身份和权限验证,本文就是通过java代码获取ip和Mac. package com.svse.query;import java.net.In ...

  9. java获取本机IP地址

    转载自:http://blog.csdn.net/thunder09/article/details/5360251 在网上找了几个用java获取本机IP地址的代码,发现都少都有些不完美,自己整理了一 ...

随机推荐

  1. 《Hadoop大数据架构与实践》学习笔记

    学习慕课网的视频:Hadoop大数据平台架构与实践--基础篇http://www.imooc.com/learn/391 一.第一章 #,Hadoop的两大核心:     #,HDFS,分布式文件系统 ...

  2. Java系列: 如何在Eclipse中安装Memory Analyzer插件

    一.找到eclipse的插件安装对话框: help->install new software ->work with 二.输入Memory Analyzer的安装路径 具体可以到http ...

  3. springboot的Web开发-Web相关配置

    一:Spring Boot提供自动配置 通过查看WebMvcAutoConfiguration及WebMvcProperties的源码,可以发现Spring Boot为我们提供了如下的自动配置. 1, ...

  4. Windows10系统.NET Framework 3.5离线安装方法

    Win10技术预览版给用户们带来很多新功能的同时,也给用户们带来了不害臊的麻烦与问题.其中.NET Framework 4.5是系统预装的,但是在Win10技术预览版中的部分应用需要.NET Fram ...

  5. nginx高效学习方法

    nginx高效学习方法 nginx做为一个高性能的web服务器,相对于apache等服务器来说它的代码量并不是非常庞大,反而非常精简.看过nginx源码的人都知道,nginx将“一切皆为模块”和“所有 ...

  6. Hadoop:开发机运行spark程序,抛出异常:ERROR Shell: Failed to locate the winutils binary in the hadoop binary path

    问题: windows开发机运行spark程序,抛出异常:ERROR Shell: Failed to locate the winutils binary in the hadoop binary ...

  7. 解决excel日期变成数字的问题

    在Excel中如果单元格的公式是日期格式,那么引用后的数值是错误的[不是日期格式而被转换成数字类型了],这种情况显然不是我们想要的结果 解决办法: 在公式中强制转成文本类型即可(="Date ...

  8. SSAS知识回放之订单数据分析

    1:目标 基于已经做好的DW,利用SSAS实现一个多维数据模型的创建,通过浏览可以简单的实现订单数据的分析 2:步骤 2.1:添加数据源 如下图所示,创建一个数据仓库层的数据源连接 2.2:添加数据源 ...

  9. (转)Debug Assertion Failed! Expression: _pFirstBlock == pHead

      最近在VS上开发C++程序时遇到了这个错误: Debug Assertion Failed! Expression:_pFirstBlock == pHead 如图: 点击Abort之后,查看调用 ...

  10. C# 源码 AForge.NET

    AForge.NET是一个专门为开发者和研究者基于C#框架设计的,他包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,模糊系统,机器人控制等领域.这个框架由一系列的类库组成.主要包括有 ...