Java获取本机本服务的IP端口

流程

以下是获取本机本服务的IP端口的流程:

步骤 描述
1 创建一个InetAddress对象
2 获取本机的InetAddress对象
3 获取本机的IP地址
4 获取本机的主机名
5 获取本机的服务端口

代码实现

步骤1:创建一个InetAddress对象

使用InetAddress类的getLocalHost()方法创建一个InetAddress对象。

InetAddress localhost = InetAddress.getLocalHost();

此方法返回一个代表本地主机的InetAddress对象。

步骤2:获取本机的InetAddress对象

使用InetAddress类的getByName()方法获取本机的InetAddress对象。

InetAddress localhost = InetAddress.getByName("localhost");

此方法根据指定的主机名或IP地址返回一个InetAddress对象。

步骤3:获取本机的IP地址

使用InetAddress对象的getHostAddress()方法获取本机的IP地址。

String ip = localhost.getHostAddress();

此方法返回此InetAddress对象的IP地址字符串。

步骤4:获取本机的主机名

使用InetAddress对象的getHostName()方法获取本机的主机名。

String hostname = localhost.getHostName();

此方法返回此InetAddress对象的主机名。

步骤5:获取本机的服务端口

使用ServerSocket类创建一个服务端Socket,并获取其绑定的本机端口号。

try (ServerSocket serverSocket = new ServerSocket(0)) {
    int port = serverSocket.getLocalPort();
}

此方法创建一个绑定到任意可用端口的ServerSocket对象,并获取其绑定的本机端口号。

完整代码示例

import java.net.InetAddress;
import java.net.ServerSocket;

public class Main {
    public static void main(String[] args) {
        try {
            // 步骤1:创建一个InetAddress对象
            InetAddress localhost = InetAddress.getLocalHost();

            // 步骤2:获取本机的InetAddress对象
            InetAddress localhost = InetAddress.getByName("localhost");

            // 步骤3:获取本机的IP地址
            String ip = localhost.getHostAddress();

            // 步骤4:获取本机的主机名
            String hostname = localhost.getHostName();

            // 步骤5:获取本机的服务端口
            try (ServerSocket serverSocket = new ServerSocket(0)) {
                int port = serverSocket.getLocalPort();
                System.out.println("本机IP地址:" + ip);
                System.out.println("本机主机名:" + hostname);
                System.out.println("本机服务端口:" + port);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

甘特图

gantt
    dateFormat  YYYY-MM-DD
    title 获取本机本服务的IP端口流程
    section 创建InetAddress对象
    创建InetAddress对象        :done, 2021-11-01, 1d
    section 获取本机的InetAddress对象
    获取本机的InetAddress对象    :done, 2021-11-01, 1d
    section 获取本机的IP地址
    获取本机的IP地址           :done, 2021-11-01, 1d
    section 获取本机的主机名
    获取本机的主机名           :done, 2021-11-01, 1d
    section 获取本机的服务端口
    获取本机的服务端口         :done, 2021-11-01, 1d

以上是使用Java获取本机本服务的IP端口的完整流程。通过创建InetAddress对象、获取本机的IP地址和主机名,以及使用ServerSocket获取本机的服务端口,我们可以轻松地实现这一功能。希望本文对你有所帮助!