Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

java 获取本地ip


在 Java 中获取本地 IP 地址有几种方式,我将为您介绍三种常用的方式:使用 InetAddress 类、使用 NetworkInterface 类和使用第三方库(例如 Apache Commons Net)。下面是每种方式的详细步骤流程和示例代码:

使用 InetAddress 类

InetAddress 类提供了用于获取本地主机的 IP 地址的方法。

步骤流程:

  1. 导入所需的 Java 包。
  2. 使用 InetAddress.getLocalHost() 方法获取本地主机的 InetAddress 对象。
  3. 调用 getHostAddress() 方法获取本地 IP 地址的字符串表示。

示例代码:

import java.net.InetAddress;

public class LocalIPExample {

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

使用 NetworkInterface 类

NetworkInterface 类允许您获取网络接口的信息,包括 IP 地址。

步骤流程:

  1. 导入所需的 Java 包。
  2. 使用 NetworkInterface.getNetworkInterfaces() 获取所有网络接口的枚举。
  3. 遍历枚举,对于每个网络接口,获取其 InetAddress 对象列表并找到 IPv4 地址。

示例代码:

import java.net.*;
import java.util.*;

public class NetworkInterfaceExample {

    public static void main(String[] args) {
        try {
            Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();

            while (networkInterfaces.hasMoreElements()) {
                NetworkInterface networkInterface = networkInterfaces.nextElement();
                Enumeration<InetAddress> inetAddresses = networkInterface.getInetAddresses();

                while (inetAddresses.hasMoreElements()) {
                    InetAddress address = inetAddresses.nextElement();
                    if (address instanceof Inet4Address && !address.isLoopbackAddress()) {
                        System.out.println("Local IP Address: " + address.getHostAddress());
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用 Apache Commons Net 库

您还可以使用 Apache Commons Net 库中的方法来获取本地 IP 地址。

步骤流程:

  1. 添加 Apache Commons Net 依赖到您的项目中(使用 Maven 或 Gradle)。
  2. 使用 org.apache.commons.net.util.SubnetUtils 类来获取本地 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 ApacheCommonsNetExample {

    public static void main(String[] args) {
        try {
            SubnetUtils utils = new SubnetUtils("192.168.1.0/24");
            String[] addresses = utils.getInfo().getAllAddresses();
            System.out.println("Local IP Address: " + addresses[0]);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

请注意,这里的示例使用了一个特定的子网,您可以根据您的网络配置进行调整。

以上是获取本地 IP 地址的几种常见方法,您可以根据您的需求选择其中一种适合的方法。

下面我会介绍几种常见的方法,并提供相应的示例代码以及可能用到的第三方库的Maven和Gradle依赖坐标。###使用InetAddress类 ...
在Java中获取IP地址有多种实现方式,包括通过原生JavaAPI以及使用第三方库。###通过InetAddress类获取本机IP地址通过使 ...
以下是其中一些常用的方式,每种方式都包括详细的步骤和示例代码:###方法1:使用Java内置的InetAddress类1.###方法3:使用 ...
###通过Python内置的文件操作方式这种方式使用Python内置的文件操作函数来读取本地文件内容。说明:这种方式适用于Django项目中 ...
###使用FileOutputStream这是一种基本的文件写入方式,可以将数据写入字节流中,然后写入到文件中。示例代码:###使用File ...