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
获取本机的服务端口,我们可以轻松地实现这一功能。希望本文对你有所帮助!