Java获取本机IP地址的三种方法总结

Java获取本机IP地址的三种方法总结

在Java中,有多种方法可以获取本机的IP地址。下面将介绍三种常用的方法,并提供示例说明。

方法一:使用InetAddress类

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

public class GetIPAddress {
    public static void main(String[] args) {
        try {
            InetAddress localhost = InetAddress.getLocalHost();
            System.out.println(\"方法一:使用InetAddress类\");
            System.out.println(\"IP地址: \" + localhost.getHostAddress());
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }
}

该方法使用InetAddress.getLocalHost()方法获取本机的InetAddress对象,然后使用getHostAddress()方法获取IP地址。

方法二:使用NetworkInterface类

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

public class GetIPAddress {
    public static void main(String[] args) {
        try {
            Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
            System.out.println(\"方法二:使用NetworkInterface类\");
            while (interfaces.hasMoreElements()) {
                NetworkInterface networkInterface = interfaces.nextElement();
                Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
                while (addresses.hasMoreElements()) {
                    InetAddress address = addresses.nextElement();
                    if (!address.isLoopbackAddress() && address.getHostAddress().indexOf(':') == -1) {
                        System.out.println(\"IP地址: \" + address.getHostAddress());
                    }
                }
            }
        } catch (SocketException e) {
            e.printStackTrace();
        }
    }
}

该方法使用NetworkInterface.getNetworkInterfaces()方法获取所有网络接口的枚举,然后遍历每个网络接口,使用getInetAddresses()方法获取每个接口的InetAddress对象,再通过判断是否为回环地址和IPv6地址来获取IP地址。

方法三:使用System类

public class GetIPAddress {
    public static void main(String[] args) {
        System.out.println(\"方法三:使用System类\");
        String ip = System.getProperty(\"java.net.preferIPv4Stack\") != null ? System.getProperty(\"java.net.preferIPv4Stack\") : \"\";
        if (ip.equals(\"true\")) {
            ip = System.getProperty(\"java.net.preferIPv4Addresses\");
        } else {
            ip = System.getProperty(\"java.net.preferIPv6Addresses\");
        }
        System.out.println(\"IP地址: \" + ip);
    }
}

该方法使用System.getProperty()方法获取系统属性,通过判断java.net.preferIPv4Stack属性是否存在来确定使用IPv4还是IPv6地址。

以上是获取本机IP地址的三种常用方法的详细攻略。你可以根据自己的需求选择适合的方法来获取IP地址。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java获取本机IP地址的三种方法总结 - Python技术站

(0)
上一篇 2023年7月30日
下一篇 2023年7月30日

相关文章

  • 使命召唤16不支持DX12怎么办 系统不支持DX12解决方法

    如果玩家的系统不支持DirectX 12,就无法在使命召唤16中享受DX12的一些特性和性能提升。但是,玩家无需担心,可以通过以下两种方式来解决这个问题: 解决方法一:升级驱动程序和操作系统 首先,玩家需要检查自己的驱动程序和操作系统是否为最新版本。如果不是最新版本,可以进行升级。可以按照以下步骤来升级: 检查设备管理器中是否存在图形驱动程序的更新。如果有更…

    other 2023年6月27日
    00
  • 在Python中使用Mako模版库的简单教程

    下面是在Python中使用Mako模版库的简单教程: 什么是Mako模版库? Mako是一个功能强大且易于使用的Python模板库,用于生成HTML,XML等标记语言和任何其他纯文本格式。它基于类似于Jinja2和Cheetah的模板语言,具有简单的表达式,控制结构和过滤器。Mako还集成了Python表达式,所以您可以写更多的逻辑代码来控制您的模板。 安装…

    other 2023年6月27日
    00
  • Flutter有无状态类与State及生命周期详细介绍

    下面是关于Flutter的无状态类与有状态类及其生命周期方法的详细介绍及示例: Flutter有状态类和无状态类 Flutter中的类可以分为有状态和无状态两种。有状态的类可以通过修改自身的状态来动态改变其外观和行为,而无状态类则不具有这种能力。通常情况下,我们会在页面中使用有状态的类,而在内容单一或无需动态变化的组件中使用无状态的类。 无状态类 无状态类是…

    other 2023年6月27日
    00
  • velocity模板引擎学习(2)-velocitytools2.0

    以下是详细讲解“velocity模板引擎学习(2)-velocitytools2.0的完整攻略,过程中至少包含两条示例说明”的标准Markdown格式文本: Velocity模板引擎学习(2) – VelocityTools 2.0 VelocityTools是一个为Velocity模板引擎提供扩展功能的工具集。它包含了一些常用的工具,如日期格式化、数字格式…

    other 2023年5月10日
    00
  • JAVA NIO实现简单聊天室功能

    JAVA NIO实现简单聊天室功能 在JAVA NIO(New IO)中,实现简单聊天室功能通常需要以下步骤: 1. 创建ServerSocketChannel/IoServerSocketChannel实例 在JAVA NIO中,ServerSocketChannel和IoServerSocketChannel类分别充当服务器端的套接字通道。需要通过这两个…

    other 2023年6月27日
    00
  • C#操作INI配置文件示例详解

    下面是详细的“C#操作INI配置文件示例详解”攻略。 什么是INI文件? INI文件是一种简单的文本文件,它通常用于存储程序的配置信息。INI文件由若干个节组成,每个节中包含若干个键值对,键值对用等号连接,例如: [Database] Server=127.0.0.1 Port=3306 Username=root Password=123456 C#如何操…

    other 2023年6月25日
    00
  • (转)微信小程序破解ide

    (转)微信小程序破解ide 最近,有些开发者破解了微信小程序的开发IDE,分享了相关代码和教程,导致许多人对此产生争议。 我们强烈谴责此种行为,因为它严重违反了伦理和法律道德准则。为了避免带来的风险,我们也不建议开发者通过非法方式来AC该产品。 然而,我们也要注意到,这种情况并非个案,我们所能控制的事情实在太有限了。对于这种情况,请大家保持冷静,理性看待,充…

    其他 2023年3月28日
    00
  • DLL文件无法完成初始化的具体解决方法

    DLL文件无法完成初始化常见于Windows操作系统中,通常是因为DLL文件缺少依赖项或者配置不当。以下是详细讲解“DLL文件无法完成初始化的具体解决方法”的完整攻略。 1. 确认DLL文件是否存在 在使用DLL文件之前,首先要确认DLL文件是否存在于正确的位置,并且被正确地注册。可以使用工具如Dependency Walker等,查看DLL文件是否存在依赖…

    other 2023年6月20日
    00
合作推广
合作推广
分享本页
返回顶部