java获取本机名称、IP、MAC地址和网卡名称

摘自:https://blog.csdn.net/Dai_Haijiao/article/details/80364370

2018年05月18日 14:53:19
阅读数:134

  1. import java.net.InetAddress;
  2. import java.net.NetworkInterface;
  3. public class IpConfig {
  4. @SuppressWarnings("static-access")
  5. public static void main(String[] args) throws Exception {
  6. InetAddress ia = null;
  7. try {
  8. ia = ia.getLocalHost();
  9. String localname = ia.getHostName();
  10. String localip = ia.getHostAddress();
  11. System.out.println("本机名称是:" + localname);
  12. System.out.println("本机的ip是 :" + localip);
  13. } catch (Exception e) {
  14. e.printStackTrace();
  15. }
  16. InetAddress ia1 = InetAddress.getLocalHost();// 获取本地IP对象
  17. System.out.println("本机的MAC是 :" + getMACAddress(ia1));
  18. }
  19. // 获取MAC地址的方法
  20. private static String getMACAddress(InetAddress ia) throws Exception {
  21. // 获得网络接口对象(即网卡),并得到mac地址,mac地址存在于一个byte数组中。
  22. byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();
  23. // 下面代码是把mac地址拼装成String
  24. StringBuffer sb = new StringBuffer();
  25. for (int i = 0; i < mac.length; i++) {
  26. if (i != 0) {
  27. sb.append("-");
  28. }
  29. // mac[i] & 0xFF 是为了把byte转化为正整数
  30. String s = Integer.toHexString(mac[i] & 0xFF);
  31. // System.out.println("--------------");
  32. // System.err.println(s);
  33. sb.append(s.length() == 1 ? 0 + s : s);
  34. }
  35. // 把字符串所有小写字母改为大写成为正规的mac地址并返回
  36. return sb.toString().toUpperCase();
  37. }
  38. }

输出结果如下:

本机名称是:PC-DaiHaijiao
本机的ip是 :172.16.0.31

本机的MAC是 :00-FF-0D-99-5E-1E


  1. import java.net.Inet4Address;
  2. import java.net.InetAddress;
  3. import java.net.NetworkInterface;
  4. import java.util.Enumeration;
  5. public class NetworkInterfaceTest {
  6. public static void main(String[] args) throws Exception {
  7. // 获得本机的所有网络接口
  8. Enumeration<NetworkInterface> nifs = NetworkInterface.getNetworkInterfaces();
  9. while (nifs.hasMoreElements()) {
  10. NetworkInterface nif = nifs.nextElement();
  11. // 获得与该网络接口绑定的 IP 地址,一般只有一个
  12. Enumeration<InetAddress> addresses = nif.getInetAddresses();
  13. while (addresses.hasMoreElements()) {
  14. InetAddress addr = addresses.nextElement();
  15. if (addr instanceof Inet4Address) { // 只关心 IPv4 地址
  16. System.out.println("网卡接口名称:" + nif.getName());
  17. System.out.println("网卡接口地址:" + addr.getHostAddress());
  18. System.out.println();
  19. }
  20. }
  21. }
  22. }
  23. }

输出结果如下:

网卡接口名称:lo
网卡接口地址:127.0.0.1

网卡接口名称:eth0
网卡接口地址:172.16.0.31

网卡接口名称:eth2
网卡接口地址:192.168.220.1

网卡接口名称:wlan2
网卡接口地址:192.168.0.108

网卡接口名称:eth8
网卡接口地址:192.168.138.1

java获取本机名称、IP、MAC地址和网卡名称的更多相关文章

  1. c#中如何获取本机用户名、MAC地址、IP地址、硬盘ID、CPU序列号、系统名称、物理内存

    我们在利用C#开发桌面程序(Winform)程序的时候, 经常需要获取一些跟系统相关的信息, 以下这些代码获取能有些用处. c#中如何获取本机用户名.MAC地址.IP地址.硬盘ID.CPU序列号.系统 ...

  2. java 获取计算机名称, ip, mac地址

    写在前面 通常所说查询本机mac地址是以以太网为准的, 也就是网线那个口..这种描述略捞. 但是通过java的getHostAddress获取ip以及getHardwareAddress()方法获取m ...

  3. Java获取本机的IP与MAC地址

    有些机器有许多虚拟的网卡,获取IP地址时会出现一些意外,所以需要一些验证: // 获取mac地址 public static String getMacAddress() { try { Enumer ...

  4. win32 获取本机网卡信息(MAC地址,IP地址等)

    由于一个需求需要获取网卡的MAC地址,就搜了一下,大部分都是COPY来COPY去的一些代码,有很多甚至不能直接运行或有还有内存泄漏.自己查了一下MSDN然后封装了一下: 需要注意,一个机器可能有多个网 ...

  5. java 获取本机的IP地址

    方法一:这种方式有一定的局限性,在Linux下的执行结果是:本机的IP = xxx/127.0.1.1 (其中xxx是你的计算机名) public void getLocalIPAddress() { ...

  6. java 获取本机所有IP地址

    import java.net.Inet6Address; import java.net.InetAddress; import java.net.NetworkInterface; import ...

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

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

  8. Java获取本机MAC地址[转]

    原文地址:https://www.cnblogs.com/hxsyl/p/3422191.html Java获取本机MAC地址   为什么写这个呢?因为前几天看见网上有采用windows命令获取局域网 ...

  9. java获取本机IP地址

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

随机推荐

  1. 让camera实现类似cs第一人称视角旋转和位移

    直接把这个脚本挂在摄像机上就可: using System.Collections; using System.Collections.Generic; using UnityEngine; /* * ...

  2. Java 输入参数并求和

    题目要求: 输入若干的参数,编写一个程序求出参数的和: 程序流程: 代码: 例子:

  3. PLSQL Developer 攻略

    .Net程序员学用Oracle系列(18):PLSQL Developer 攻略   1.功能说明及使用技巧 1.1.对象浏览器 1.2.SQL 窗口 1.3.测试窗口 1.4.命令窗口 1.5.图表 ...

  4. BZOJ3170:[TJOI2013]松鼠聚会

    题目传送门:https://lydsy.com/JudgeOnline/problem.php?id=3170 通过分析可以发现,题目所说的两点之间的距离就是切比雪夫距离. 两点之间欧几里得距离:\( ...

  5. Bug:DataGridCell的显示不完整

    最近在使用DataGrid时遇到一个bug, 在客户机器上DataGrid的内容显示不完整, 具体表现为某些列的显示为空. 具体的可视树为:DataGridCell > ContentPrese ...

  6. clone对象的克隆

    用一句简单的话来说就是浅拷贝,只是对指针的拷贝,拷贝后两个指针指向同一个内存空间,深拷贝不但对指针进行拷贝,而且对指针指向的内容进行拷贝,经深拷贝后的指针是指向两个不同地址的指针. 等多 http:/ ...

  7. 机器学习:PCA(使用梯度上升法求解数据主成分 Ⅰ )

    一.目标函数的梯度求解公式 PCA 降维的具体实现,转变为: 方案:梯度上升法优化效用函数,找到其最大值时对应的主成分 w : 效用函数中,向量 w 是变量: 在最终要求取降维后的数据集时,w 是参数 ...

  8. 四川第七届 E Rectangle

    Rectangle frog has a piece of paper divided into nn rows and mm columns. Today, she would like to dr ...

  9. FileStream 常用的属性和方法

    FileStream常用的属性和方法 (转) 对流进行操作时要引用 using System.IO; 命名空间 FileStream常用的属性和方法: 属性: CanRead 判断当前流是否支持读取, ...

  10. iOS类目、延展和协议

    类目:为已知的类增加新的方法:注意:类目里面只能写方法,不能写声明和属性,所以,类目不能作为接口来用 1.类目无法向已有类中添加实例变量.2.如果类目中的方法和已有类中的方法名称冲突时,类目中的方法优 ...