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日

相关文章

  • Python批量更改文件名的实现方法

    以下是“Python批量更改文件名的实现方法”的完整攻略: 一、方案说明 在Python中,批量更改文件名可以使用os模块和shutil模块来实现。其中os模块用于获取文件列表和更改文件名,shutil模块用于移动或复制文件。 具体实现的步骤如下: 使用os.listdir()方法获取待更改文件名列表。 使用os.rename()方法将文件名重命名为新的文件…

    other 2023年6月26日
    00
  • 初学python来进行odoo12版本开发

    初学Python来进行Odoo 12版本开发 Odoo是一个开源的、全功能的商业管理软件,它被广泛应用于ERP和CRM系统。然而,对于初学者来说,Odoo的学习曲线可能有点陡峭,需要掌握Python的基本知识,因为它是Odoo的主要编程语言。 下面是一些有助于初学Python开发Odoo 12的提示: 安装Python并熟悉Python 开始学习Odoo之前…

    其他 2023年3月28日
    00
  • python的注释规范

    以下是“Python的注释规范完整攻略”的标准markdown格式文本,其中包含两个示例: Python的注释规范完整攻略 Python是一种易于学习和使用的编程语言,注释是Python编程中非常重要的一部分。好的注释可以提高代码的可读性和可维护性。以下是Python的注释规范的完整攻略。 1. 单行注释 单行注释是指在一行代码后面添加注释。以下是单行注释的…

    other 2023年5月10日
    00
  • windows8系统账号自动登录默认设置2种方式

    Windows 8系统支持两种方式设置自动登录:本地计算机账号自动登录和Microsoft账号自动登录。下面分别详细讲解这两种方式的设置步骤。 本地计算机账号自动登录 打开“运行”对话框,方法:按下“Win + R”组合键,或者在开始菜单中搜索“运行”。 输入“netplwiz”命令并点击“确定”按钮。 在“用户账户”窗口中,取消勾选“要使用本计算机,用户必…

    other 2023年6月27日
    00
  • grokdebugger安装配置

    以下是grokdebugger安装配置的完整攻略: 第0章:概述 Grok Debugger是一款用于测试和调试Grok模式的工具。Grok模式是一种用于从非结构化数据中提取结构化数据的模式匹配语言。Grok Debugger可以帮助用户验证Grok模式是否正确,并提供有关模式匹配的详细信息。 第1章:安装 Grok Debugger是一个基于Web的应用程…

    other 2023年5月9日
    00
  • PHP利用超级全局变量$_GET来接收表单数据的实例

    PHP利用超级全局变量$_GET来接收表单数据的实例攻略 在PHP中,可以使用超级全局变量$_GET来接收通过GET方法提交的表单数据。$_GET是一个关联数组,其中的键值对表示了通过URL参数传递的数据。 以下是使用$_GET接收表单数据的完整攻略: 步骤1:创建HTML表单 首先,我们需要创建一个HTML表单,用于收集用户输入的数据。在表单中,我们需要指…

    other 2023年7月29日
    00
  • oracle表增加索引

    Oracle表增加索引的完整攻略 在Oracle数据库中,索引是一种用于加速数据检索的数据结构。在表中创建索引可以提高查询效率,减少时间。以下是Oracle表增加索引的完整攻略。 步骤1:选择要创建索引的表 首先,需要选择要创建索的表。可以使用以下命令查看当前数据库中的所有表: SELECT table_name FROM user_tables; 在上面的…

    other 2023年5月8日
    00
  • 详解Java中的Reflection反射和暴力反射

    详解Java中的Reflection反射和暴力反射 什么是Reflection反射 Java中的Reflection反射是指在程序运行阶段,对于任意一个类都可以知道这个类的所有属性和方法,可以调用任何一个方法和属性。这个功能十分强大,相比较Java之前的版本,Reflection反射可以减少代码的重复、提高代码的灵活性,大大提升了Java程序的可扩展性和可重…

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