Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

java获取ip地址


在 Java 中获取 IP 地址有多种实现方式,包括通过原生 Java API 以及使用第三方库。下面我将介绍几种常见的实现方式,并为每种方式提供详细的步骤流程和示例代码。

通过 InetAddress 类获取本机 IP 地址

通过使用 Java 标准库中的 InetAddress 类,你可以获取本机的 IP 地址。

步骤流程:

  1. 导入 java.net.InetAddress 类。
  2. 使用 InetAddress.getLocalHost() 方法获取本机的 InetAddress 对象。
  3. 使用获取到的 InetAddress 对象调用 getHostAddress() 方法获取 IP 地址。

示例代码:

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

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

使用第三方库:Apache Commons Net

Apache Commons Net 库提供了更多处理网络相关操作的功能,包括获取 IP 地址。

步骤流程:

  1. 添加 Apache Commons Net 库的依赖。
  2. 导入 org.apache.commons.net.util.SubnetUtils 类。
  3. 创建 SubnetUtils 对象并使用 getInfo().getAddress() 方法获取 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 GetIPAddressWithCommonsNet {
    public static void main(String[] args) {
        SubnetUtils subnetUtils = new SubnetUtils("192.168.1.0/24");
        String ipAddress = subnetUtils.getInfo().getAddress();
        System.out.println("IP Address: " + ipAddress);
    }
}

这里的示例使用了一个子网工具类,你可以根据需要自行调整 IP 地址或子网。

这些是获取 IP 地址的几种常见方式,每种方式都有其适用场景和优劣势。根据你的具体需求,选择合适的方法进行实现。

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