java 获取网络接口信息,看这一篇就行了 | Java工具类

简介: java 获取网络接口信息,看这一篇就行了 | Java工具类

前言

查看本机的网络接口信息,本文有详细的介绍哦。

代码

不废话,上代码。

package com.hy.csdn.tools;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
/**
 * @Program: hy-utils @ClassName: StuNetworkInterface @Author: huyi @Date: 2020-09-20
 * 23:48 @Description: 网络接口 @Version: V1.0
 */
public class NetworkInterfaceUtil {
  public static void main(String[] args) {
    try {
      Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
      while (networkInterfaces.hasMoreElements()) {
        NetworkInterface networkInterface = networkInterfaces.nextElement();
        System.out.println("getName获得网络设备现实名称=" + networkInterface.getName());
        System.out.println("getDisplayName获得网络设备现实名称=" + networkInterface.getDisplayName());
        System.out.println("getIndex获得网络接口的索引=" + networkInterface.getIndex());
        System.out.println("isUp是否已经开启并运行=" + networkInterface.isUp());
        System.out.println("isLoopback是否为回调接口=" + networkInterface.isLoopback());
        System.out.println("getMTU获得最大传输单元=" + networkInterface.getMTU());
        Enumeration<InetAddress> enumerations = networkInterface.getInetAddresses();
        while (enumerations.hasMoreElements()) {
          InetAddress inetAddress = enumerations.nextElement();
          System.out.println("获取此IP地址的完全限定域名=" + inetAddress.getCanonicalHostName());
          System.out.println("获取此IP地址的主机名=" + inetAddress.getHostName());
          System.out.println("获取此IP地址的字符串=" + inetAddress.getHostAddress());
          System.out.print("getAddress返回此InetAddress对象的原始IP地址=");
          byte[] addressByte = inetAddress.getAddress();
          for (byte b : addressByte) {
            System.out.print(b + " ");
          }
          System.out.println();
        }
        System.out.println();
      }
    } catch (SocketException e) {
      e.printStackTrace();
    }
  }
}

看看执行结果。

/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/bin/java -Dfile.encoding=UTF-8 -classpath /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/jaccess.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/lib/packager.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/lib/tools.jar:/Users/huyi/idea/csdn/target/classes:/Users/huyi/.m2/repository/org/springframework/boot/spring-boot-starter-web/2.5.5/spring-boot-starter-web-2.5.5.jar:/Users/huyi/.m2/repository/org/springframework/boot/spring-boot-starter/2.5.5/spring-boot-starter-2.5.5.jar:/Users/huyi/.m2/repository/org/springframework/boot/spring-boot-starter-logging/2.5.5/spring-boot-starter-logging-2.5.5.jar:/Users/huyi/.m2/repository/ch/qos/logback/logback-classic/1.2.6/logback-classic-1.2.6.jar:/Users/huyi/.m2/repository/ch/qos/logback/logback-core/1.2.6/logback-core-1.2.6.jar:/Users/huyi/.m2/repository/org/apache/logging/log4j/log4j-to-slf4j/2.14.1/log4j-to-slf4j-2.14.1.jar:/Users/huyi/.m2/repository/org/apache/logging/log4j/log4j-api/2.14.1/log4j-api-2.14.1.jar:/Users/huyi/.m2/repository/org/slf4j/jul-to-slf4j/1.7.32/jul-to-slf4j-1.7.32.jar:/Users/huyi/.m2/repository/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar:/Users/huyi/.m2/repository/org/yaml/snakeyaml/1.28/snakeyaml-1.28.jar:/Users/huyi/.m2/repository/org/springframework/boot/spring-boot-starter-json/2.5.5/spring-boot-starter-json-2.5.5.jar:/Users/huyi/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.12.5/jackson-databind-2.12.5.jar:/Users/huyi/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.12.5/jackson-annotations-2.12.5.jar:/Users/huyi/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.12.5/jackson-core-2.12.5.jar:/Users/huyi/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jdk8/2.12.5/jackson-datatype-jdk8-2.12.5.jar:/Users/huyi/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.12.5/jackson-datatype-jsr310-2.12.5.jar:/Users/huyi/.m2/repository/com/fasterxml/jackson/module/jackson-module-parameter-names/2.12.5/jackson-module-parameter-names-2.12.5.jar:/Users/huyi/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/2.5.5/spring-boot-starter-tomcat-2.5.5.jar:/Users/huyi/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/9.0.53/tomcat-embed-core-9.0.53.jar:/Users/huyi/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/9.0.53/tomcat-embed-el-9.0.53.jar:/Users/huyi/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/9.0.53/tomcat-embed-websocket-9.0.53.jar:/Users/huyi/.m2/repository/org/springframework/spring-web/5.3.10/spring-web-5.3.10.jar:/Users/huyi/.m2/repository/org/springframework/spring-beans/5.3.10/spring-beans-5.3.10.jar:/Users/huyi/.m2/repository/org/springframework/spring-webmvc/5.3.10/spring-webmvc-5.3.10.jar:/Users/huyi/.m2/repository/org/springframework/spring-aop/5.3.10/spring-aop-5.3.10.jar:/Users/huyi/.m2/repository/org/springframework/spring-context/5.3.10/spring-context-5.3.10.jar:/Users/huyi/.m2/repository/org/springframework/spring-expression/5.3.10/spring-expression-5.3.10.jar:/Users/huyi/.m2/repository/org/springframework/boot/spring-boot-devtools/2.5.5/spring-boot-devtools-2.5.5.jar:/Users/huyi/.m2/repository/org/springframework/boot/spring-boot/2.5.5/spring-boot-2.5.5.jar:/Users/huyi/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/2.5.5/spring-boot-autoconfigure-2.5.5.jar:/Users/huyi/.m2/repository/org/springframework/boot/spring-boot-configuration-processor/2.5.5/spring-boot-configuration-processor-2.5.5.jar:/Users/huyi/.m2/repository/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar:/Users/huyi/.m2/repository/org/slf4j/slf4j-api/1.7.32/slf4j-api-1.7.32.jar:/Users/huyi/.m2/repository/org/springframework/spring-core/5.3.10/spring-core-5.3.10.jar:/Users/huyi/.m2/repository/org/springframework/spring-jcl/5.3.10/spring-jcl-5.3.10.jar:/Users/huyi/.m2/repository/com/aliyun/oss/aliyun-sdk-oss/3.10.2/aliyun-sdk-oss-3.10.2.jar:/Users/huyi/.m2/repository/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar:/Users/huyi/.m2/repository/org/apache/httpcomponents/httpcore/4.4.14/httpcore-4.4.14.jar:/Users/huyi/.m2/repository/commons-codec/commons-codec/1.15/commons-codec-1.15.jar:/Users/huyi/.m2/repository/org/jdom/jdom2/2.0.6/jdom2-2.0.6.jar:/Users/huyi/.m2/repository/org/codehaus/jettison/jettison/1.1/jettison-1.1.jar:/Users/huyi/.m2/repository/stax/stax-api/1.0.1/stax-api-1.0.1.jar:/Users/huyi/.m2/repository/com/aliyun/aliyun-java-sdk-core/3.4.0/aliyun-java-sdk-core-3.4.0.jar:/Users/huyi/.m2/repository/com/aliyun/aliyun-java-sdk-ram/3.0.0/aliyun-java-sdk-ram-3.0.0.jar:/Users/huyi/.m2/repository/com/aliyun/aliyun-java-sdk-sts/3.0.0/aliyun-java-sdk-sts-3.0.0.jar:/Users/huyi/.m2/repository/com/aliyun/aliyun-java-sdk-ecs/4.2.0/aliyun-java-sdk-ecs-4.2.0.jar:/Users/huyi/.m2/repository/com/aliyun/aliyun-java-sdk-kms/2.7.0/aliyun-java-sdk-kms-2.7.0.jar:/Users/huyi/.m2/repository/com/google/code/gson/gson/2.8.8/gson-2.8.8.jar:/Users/huyi/.m2/repository/cn/hutool/hutool-all/5.7.15/hutool-all-5.7.15.jar com.hy.csdn.tools.NetworkInterfaceUtil
getName获得网络设备现实名称=utun1
getDisplayName获得网络设备现实名称=utun1
getIndex获得网络接口的索引=12
isUp是否已经开启并运行=true
isLoopback是否为回调接口=false
getMTU获得最大传输单元=2000
获取此IP地址的完全限定域名=fe80:0:0:0:63a3:85eb:e7ec:770d%utun1
获取此IP地址的主机名=fe80:0:0:0:63a3:85eb:e7ec:770d%utun1
获取此IP地址的字符串=fe80:0:0:0:63a3:85eb:e7ec:770d%utun1
getAddress返回此InetAddress对象的原始IP地址=-2 -128 0 0 0 0 0 0 99 -93 -123 -21 -25 -20 119 13 
getName获得网络设备现实名称=utun0
getDisplayName获得网络设备现实名称=utun0
getIndex获得网络接口的索引=11
isUp是否已经开启并运行=true
isLoopback是否为回调接口=false
getMTU获得最大传输单元=1380
获取此IP地址的完全限定域名=fe80:0:0:0:3b2:454d:40f6:fa91%utun0
获取此IP地址的主机名=fe80:0:0:0:3b2:454d:40f6:fa91%utun0
获取此IP地址的字符串=fe80:0:0:0:3b2:454d:40f6:fa91%utun0
getAddress返回此InetAddress对象的原始IP地址=-2 -128 0 0 0 0 0 0 3 -78 69 77 64 -10 -6 -111 
getName获得网络设备现实名称=llw0
getDisplayName获得网络设备现实名称=llw0
getIndex获得网络接口的索引=10
isUp是否已经开启并运行=true
isLoopback是否为回调接口=false
getMTU获得最大传输单元=1500
获取此IP地址的完全限定域名=fe80:0:0:0:1c5b:adff:fec2:41ef%llw0
获取此IP地址的主机名=fe80:0:0:0:1c5b:adff:fec2:41ef%llw0
获取此IP地址的字符串=fe80:0:0:0:1c5b:adff:fec2:41ef%llw0
getAddress返回此InetAddress对象的原始IP地址=-2 -128 0 0 0 0 0 0 28 91 -83 -1 -2 -62 65 -17 
getName获得网络设备现实名称=awdl0
getDisplayName获得网络设备现实名称=awdl0
getIndex获得网络接口的索引=9
isUp是否已经开启并运行=true
isLoopback是否为回调接口=false
getMTU获得最大传输单元=1484
获取此IP地址的完全限定域名=fe80:0:0:0:1c5b:adff:fec2:41ef%awdl0
获取此IP地址的主机名=fe80:0:0:0:1c5b:adff:fec2:41ef%awdl0
获取此IP地址的字符串=fe80:0:0:0:1c5b:adff:fec2:41ef%awdl0
getAddress返回此InetAddress对象的原始IP地址=-2 -128 0 0 0 0 0 0 28 91 -83 -1 -2 -62 65 -17 
getName获得网络设备现实名称=en0
getDisplayName获得网络设备现实名称=en0
getIndex获得网络接口的索引=4
isUp是否已经开启并运行=true
isLoopback是否为回调接口=false
getMTU获得最大传输单元=1500
获取此IP地址的完全限定域名=fe80:0:0:0:df:d7c9:cd1:81e3%en0
获取此IP地址的主机名=fe80:0:0:0:df:d7c9:cd1:81e3%en0
获取此IP地址的字符串=fe80:0:0:0:df:d7c9:cd1:81e3%en0
getAddress返回此InetAddress对象的原始IP地址=-2 -128 0 0 0 0 0 0 0 -33 -41 -55 12 -47 -127 -29 
获取此IP地址的完全限定域名=192.168.3.107
获取此IP地址的主机名=192.168.3.107
获取此IP地址的字符串=192.168.3.107
getAddress返回此InetAddress对象的原始IP地址=-64 -88 3 107 
getName获得网络设备现实名称=lo0
getDisplayName获得网络设备现实名称=lo0
getIndex获得网络接口的索引=1
isUp是否已经开启并运行=true
isLoopback是否为回调接口=true
getMTU获得最大传输单元=16384
获取此IP地址的完全限定域名=fe80:0:0:0:0:0:0:1%lo0
获取此IP地址的主机名=fe80:0:0:0:0:0:0:1%lo0
获取此IP地址的字符串=fe80:0:0:0:0:0:0:1%lo0
getAddress返回此InetAddress对象的原始IP地址=-2 -128 0 0 0 0 0 0 0 0 0 0 0 0 0 1 
获取此IP地址的完全限定域名=localhost
获取此IP地址的主机名=localhost
获取此IP地址的字符串=0:0:0:0:0:0:0:1
getAddress返回此InetAddress对象的原始IP地址=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 
获取此IP地址的完全限定域名=localhost
获取此IP地址的主机名=localhost
获取此IP地址的字符串=127.0.0.1
getAddress返回此InetAddress对象的原始IP地址=127 0 0 1 
Process finished with exit code 0

总结

认定一件事,即使拿出十分力气都无法完成,也要拿出十二分力气去努力。

如果本文对你有用的话,别吝啬你的赞,Come on。

相关文章
|
7月前
|
JSON 移动开发 网络协议
Java网络编程:Socket通信与HTTP客户端
本文全面讲解Java网络编程,涵盖TCP与UDP协议区别、Socket编程、HTTP客户端开发及实战案例,助你掌握实时通信、文件传输、聊天应用等场景,附性能优化与面试高频问题解析。
|
7月前
|
数据采集 JSON Java
Java爬虫获取1688店铺所有商品接口数据实战指南
本文介绍如何使用Java爬虫技术高效获取1688店铺商品信息,涵盖环境搭建、API调用、签名生成及数据抓取全流程,并附完整代码示例,助力市场分析与选品决策。
|
6月前
|
算法 安全 Java
除了类,Java中的接口和方法也可以使用泛型吗?
除了类,Java中的接口和方法也可以使用泛型吗?
212 11
|
5月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
277 1
|
5月前
|
Java Go 开发工具
【Java】(9)抽象类、接口、内部的运用与作用分析,枚举类型的使用
抽象类必须使用abstract修饰符来修饰,抽象方法也必须使用abstract修饰符来修饰,抽象方法不能有方法体。抽象类不能被实例化,无法使用new关键字来调用抽象类的构造器创建抽象类的实例。抽象类可以包含成员变量、方法(普通方法和抽象方法都可以)、构造器、初始化块、内部类(接 口、枚举)5种成分。抽象类的构造器不能用于创建实例,主要是用于被其子类调用。抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类abstract static不能同时修饰一个方法。
278 1
|
5月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
296 1
|
7月前
|
存储 缓存 安全
Java集合框架(二):Set接口与哈希表原理
本文深入解析Java中Set集合的工作原理及其实现机制,涵盖HashSet、LinkedHashSet和TreeSet三大实现类。从Set接口的特性出发,对比List理解去重机制,并详解哈希表原理、hashCode与equals方法的作用。进一步剖析HashSet的底层HashMap实现、LinkedHashSet的双向链表维护顺序特性,以及TreeSet基于红黑树的排序功能。文章还包含性能对比、自定义对象去重、集合运算实战和线程安全方案,帮助读者全面掌握Set的应用与选择策略。
654 23
|
5月前
|
机器学习/深度学习 分布式计算 Java
Java与图神经网络:构建企业级知识图谱与智能推理系统
图神经网络(GNN)作为处理非欧几里得数据的前沿技术,正成为企业知识管理和智能推理的核心引擎。本文深入探讨如何在Java生态中构建基于GNN的知识图谱系统,涵盖从图数据建模、GNN模型集成、分布式图计算到实时推理的全流程。通过具体的代码实现和架构设计,展示如何将先进的图神经网络技术融入传统Java企业应用,为构建下一代智能决策系统提供完整解决方案。
528 0
|
7月前
|
安全 Java 开发者
Java集合框架:详解Deque接口的栈操作方法全集
理解和掌握这些方法对于实现像浏览器后退功能这样的栈操作来说至关重要,它们能够帮助开发者编写既高效又稳定的应用程序。此外,在多线程环境中想保证线程安全,可以考虑使用ConcurrentLinkedDeque,它是Deque的线程安全版本,尽管它并未直接实现栈操作的方法,但是Deque的接口方法可以相对应地使用。
401 12
|
7月前
|
存储 安全 Java
Java集合框架(一):List接口及其实现类剖析
本文深入解析Java中List集合的实现原理,涵盖ArrayList的动态数组机制、LinkedList的链表结构、Vector与Stack的线程安全性及其不推荐使用的原因,对比了不同实现的性能与适用场景,帮助开发者根据实际需求选择合适的List实现。