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

yizhihongxing

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日

相关文章

  • androidstudio实现页面跳转

    Android Studio实现页面跳转 在Android应用程序中,页面跳转是非常常见的操作。以下是Android Studio实现页面跳转的完整攻略。 步骤 以下是Android Studio实现页面跳转的步骤: 创建目标Activity。 在源Activity中创建Intent对象。 使用Intent对象传递数据(可选)。 调用startActivit…

    other 2023年5月6日
    00
  • Java构造方法和方法重载详解

    Java构造方法和方法重载详解 在Java中,构造方法和方法重载是面向对象编程中的重要概念。构造方法用于创建对象并初始化其状态,而方法重载允许我们在同一个类中定义多个具有相同名称但参数列表不同的方法。本文将详细介绍Java构造方法和方法重载的概念和用法,并提供示例说明。 构造方法(Constructor) 构造方法是一种特殊的方法,用于在创建对象时初始化对象…

    other 2023年8月6日
    00
  • 功能强大的Android滚动控件RecyclerView

    功能强大的Android滚动控件RecyclerView攻略 介绍 RecyclerView是Android平台上一个功能强大的滚动控件,用于展示大量数据列表。相比于ListView,RecyclerView提供了更高的灵活性和性能优化。本攻略将详细介绍RecyclerView的使用方法和一些常见示例。 步骤 步骤1:添加依赖 在项目的build.gradl…

    other 2023年8月21日
    00
  • cdr小写英文字母怎么快速转换成大写字母?

    CDR小写英文字母转换成大写字母攻略 要将CDR小写英文字母快速转换成大写字母,可以使用以下步骤: 找到CDR小写英文字母的ASCII码值。 将ASCII码值减去32,得到对应的大写字母的ASCII码值。 将得到的ASCII码值转换回字符形式,即可得到大写字母。 下面是两个示例说明: 示例1: 假设我们要将小写字母\”c\”转换成大写字母。首先,我们需要找到…

    other 2023年8月16日
    00
  • C#取得Web程序和非Web程序的根目录的N种取法总结

    C#取得Web程序和非Web程序的根目录的N种取法总结 在使用C#编写程序时,我们经常需要获取程序的根目录,根据程序是Web程序还是非Web程序,获取根目录的方法也有所不同。下面总结了几种不同情况下获取根目录的方法: 获取Web程序的根目录 方法1:使用HttpContext.Current.Server.MapPath方法 在Web程序中,可以使用Http…

    other 2023年6月27日
    00
  • 微信小程序网络请求封装示例

    以下是“微信小程序网络请求封装示例”的详细攻略: 什么是网络请求封装? 由于微信小程序不支持引入第三方库和框架,所以通常我们需要封装一些网络请求相关的方法,使其可以在不同的页面和模块中使用,避免重复编写代码。对于这种情况,我们可以将一些常用的网络请求方法进行封装,然后在需要的地方进行调用。网络请求封装可以提高开发效率,减少代码量。 封装网络请求方法 下面是一…

    other 2023年6月25日
    00
  • 激活工具 – Microsoft Toolkit 2.4.7

    激活工具 – Microsoft Toolkit 2.4.7 Microsoft Toolkit 2.4.7是一款非常实用的激活工具,可以帮助用户激活Windows操作系统以及Office办公软件。 工具的功能 Microsoft Toolkit 2.4.7可以帮助用户激活以下产品: Windows Vista/7/8/8.1/10 Windows Serv…

    其他 2023年3月28日
    00
  • 数组和指针的区别深入剖析

    让我们来深入剖析一下数组和指针的区别。 数组和指针的基础概念 数组和指针都是C语言中常见的数据类型,但它们的概念和用法有所不同。 数组是一个有序的、相同类型元素的集合。数组的元素存储在连续的内存位置中,并可以通过下标访问数组中的元素。在C语言中,数组的大小是在定义时确定的,并且在程序运行时是不会改变的。 指针是一个变量,存储另一个变量的地址。指针变量的值是一…

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