当前位置: 代码网 > it编程>编程语言>Java > Java获取本机IP的几种常见方法

Java获取本机IP的几种常见方法

2025年05月15日 Java 我要评论
在java中获取本地ip地址有多种方式,以下是几种常见的方法:1. 使用inetaddress类inetaddress类是java标准库中用于表示ip地址的类,可以通过它获取本地主机的ip地址。imp

在java中获取本地ip地址有多种方式,以下是几种常见的方法:

1. 使用 inetaddress 类

inetaddress 类是java标准库中用于表示ip地址的类,可以通过它获取本地主机的ip地址。

import java.net.inetaddress;
import java.net.unknownhostexception;

public class main {
    public static void main(string[] args) {
        try {
            inetaddress localhost = inetaddress.getlocalhost();
            system.out.println("local ip address: " + localhost.gethostaddress());
        } catch (unknownhostexception e) {
            e.printstacktrace();
        }
    }
}

2. 使用 networkinterface 类

networkinterface 类提供了更细粒度的网络接口信息,可以获取所有网络接口的ip地址。

import java.net.inetaddress;
import java.net.networkinterface;
import java.net.socketexception;
import java.util.enumeration;

public class main {
    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 inetaddress = inetaddresses.nextelement();
                    if (!inetaddress.isloopbackaddress() && inetaddress.issitelocaladdress()) {
                        system.out.println("local ip address: " + inetaddress.gethostaddress());
                    }
                }
            }
        } catch (socketexception e) {
            e.printstacktrace();
        }
    }
}

3. 使用第三方库(如 apache commons net)

如果你需要更复杂的功能,可以使用第三方库,如 apache commons net

import org.apache.commons.net.util.subnetutils;
import java.net.inetaddress;
import java.net.unknownhostexception;

public class main {
    public static void main(string[] args) {
        try {
            inetaddress localhost = inetaddress.getlocalhost();
            system.out.println("local ip address: " + localhost.gethostaddress());
        } catch (unknownhostexception e) {
            e.printstacktrace();
        }
    }
}

使用时如何选择?

  • inetaddress 类:简单易用,适合大多数场景,尤其是只需要获取本地主机的ip地址时。
  • networkinterface 类:适合需要获取所有网络接口的ip地址,或者需要过滤特定类型的ip地址(如非回环地址、本地地址等)的场景。
  • 第三方库:适合需要更复杂网络操作的场景,如子网计算、ip地址范围处理等。

总结

对于大多数简单场景,使用 inetaddress.getlocalhost() 是最简单和直接的方式。如果你需要更细粒度的控制或处理多个网络接口,可以使用 networkinterface 类。

到此这篇关于java获取本机ip的几种常见方法的文章就介绍到这了,更多相关java获取本机ip内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com