在Java中,我们可以通过多种方法来获取本机的IP地址,包括内网IP地址和公网IP地址。本文将分别介绍获取这两种IP地址的方法,并提供相应的代码示例。

一、获取内网IP地址

内网IP地址通常是指局域网中分配给设备的地址,常见的有192.168.x.x、10.x.x.x等。在Java中,可以使用InetAddress类来获取本机的内网IP地址。

以下是获取本机内网IP地址的示例代码:

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

public class LocalIPExample {
    public static void main(String[] args) {
        try {
            // 获取本机的InetAddress对象
            InetAddress localHost = InetAddress.getLocalHost();
            // 输出本机的IP地址和计算机名
            System.out.println("计算机名: " + localHost.getHostName());
            System.out.println("内网IP地址: " + localHost.getHostAddress());
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }
}

在这段代码中,我们通过InetAddress.getLocalHost()方法获得本机的InetAddress实例,并通过getHostAddress()方法获取IP地址。运行以上代码将会输出本机的计算机名以及内网IP地址。

二、获取公网IP地址

获取公网IP地址的方式则相对复杂一些,因为公网IP地址并不是设备自己直接持有的。通常,我们可以通过访问外部的Web服务来获取公网IP地址,例如使用ipinfo.io、ip-api.com等服务提供的API。

以下是一个使用Java获取公网IP地址的代码示例:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class PublicIPExample {
    public static void main(String[] args) {
        try {
            // 使用ipinfo.io提供的API获取公网IP地址
            URL url = new URL("http://ipinfo.io/ip");
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            connection.setRequestProperty("Accept", "application/json");

            // 读取返回结果
            BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String publicIP = reader.readLine();
            reader.close();

            // 输出公网IP地址
            System.out.println("公网IP地址: " + publicIP);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在这段代码中,我们使用HttpURLConnection类向ipinfo.io的API发送GET请求,获取到公网IP地址的字符串,并将其打印在控制台上。

总结

通过使用Java的InetAddress类,我们可以方便地获取本机的内网IP地址,而要获取公网IP地址则需要借助外部的Web服务。正如上面的代码所示,我们可以很轻松地实现这些功能。灵活运用这些方法,可以帮助我们在网络编程中获取所需的IP信息。希望这篇文章对你理解Java中的IP地址获取方法有所帮助!

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部