Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

java 获取本机ip


在 Java 中,你可以使用多种方式获取本机的 IP 地址。下面我会介绍几种常见的方法,并提供相应的示例代码以及可能用到的第三方库的 Maven 和 Gradle 依赖坐标。

使用 InetAddress 类

InetAddress 类提供了许多用于处理 IP 地址的静态方法。

import java.net.InetAddress;
import java.net.UnknownHostException;

public class Main {
    public static void main(String[] args) {
        try {
            InetAddress localhost = InetAddress.getLocalHost();
            System.out.println("Host Name: " + localhost.getHostName());
            System.out.println("IP Address: " + localhost.getHostAddress());
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }
}

使用 NetworkInterface 类

NetworkInterface 类允许你获取本机所有网络接口的信息,包括 IP 地址。

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;

public class Main {
    public static void main(String[] args) {
        try {
            Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
            while (networkInterfaces.hasMoreElements()) {
                NetworkInterface networkInterface = networkInterfaces.nextElement();
                Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
                while (addresses.hasMoreElements()) {
                    InetAddress address = addresses.nextElement();
                    System.out.println("Interface: " + networkInterface.getDisplayName());
                    System.out.println("IP Address: " + address.getHostAddress());
                }
            }
        } catch (SocketException e) {
            e.printStackTrace();
        }
    }
}

使用第三方库 Apache Commons Net

这是一个常用的网络操作库,可以方便地获取本机 IP 地址。

Maven 依赖:

<dependency>
    <groupId>commons-net</groupId>
    <artifactId>commons-net</artifactId>
    <version>3.8.0</version>
</dependency>

Gradle 依赖:

implementation 'commons-net:commons-net:3.8.0'

示例代码:

import org.apache.commons.net.util.SubnetUtils;

public class Main {
    public static void main(String[] args) {
        SubnetUtils.SubnetInfo subnetInfo = new SubnetUtils("192.168.1.0/24").getInfo();
        System.out.println("IP Address: " + subnetInfo.getAddress());
    }
}

这里的示例使用了 SubnetUtils 类从子网中获取 IP 地址。

请注意,这只是一些获取本机 IP 地址的方法。在实际应用中,选择哪种方法取决于你的需求和上下文。

在Java中获取本地IP地址有几种方式,我将为您介绍三种常用的方式:使用`InetAddress`类、使用`NetworkInterface ...
在Java中获取IP地址有多种实现方式,包括通过原生JavaAPI以及使用第三方库。###通过InetAddress类获取本机IP地址通过使 ...
以下是其中一些常用的方式,每种方式都包括详细的步骤和示例代码:###方法1:使用Java内置的InetAddress类1.###方法3:使用 ...
在Java中,要通过Socket绑定多个IP地址,可以使用不同的方法。###方法一:使用多个ServerSocket实例在这种方法中,我们为 ...
currentTimeMillis()这是获取当前时间戳的一种简单方式,返回自1970年1月1日以来的毫秒数。ZonedDateTime和时 ...