推荐答案
要在Java中获取本机的IP地址和端口号,你可以使用InetAddress和ServerSocket类。下面是一个示例代码,演示如何获取本机的IP地址和一个可用的端口号:
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.SocketException;
import java.net.UnknownHostException;
public class GetIPAddressAndPort {
public static void main(String[] args) {
try {
// 获取本机的IP地址
InetAddress localhost = InetAddress.getLocalHost();
String ipAddress = localhost.getHostAddress();
System.out.println("本机IP地址: " + ipAddress);
// 获取一个可用的端口号
try (ServerSocket socket = new ServerSocket(0)) {
int port = socket.getLocalPort();
System.out.println("可用端口号: " + port);
} catch (SocketException e) {
e.printStackTrace();
}
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
在上面的示例中,我们首先通过调用InetAddress.getLocalHost()方法获取本机的InetAddress对象。然后,我们可以使用getHostAddress()方法获取本机的IP地址,并将其打印到控制台。
接下来,我们通过创建一个ServerSocket对象并传递端口号为0,来获取一个可用的端口号。传递0作为端口号会使操作系统自动分配一个空闲的端口号。我们可以通过getLocalPort()方法获取实际分配的端口号,并将其打印到控制台。
输出结果可能类似于:
本机IP地址: 192.168.1.100
可用端口号: 56789
通过这种方式,你可以获取到本机的IP地址和一个可用的端口号。
其他答案
-
要在Java中获取本机的IP地址和端口号,你可以使用NetworkInterface和ServerSocket类。下面是一个示例代码,演示了如何获取本机的IP地址和一个可用的端口号:
import java.net.*;
import java.util.Enumeration;
public class GetIPAddressAndPort {
public static void main(String[] args) {
try {
Enumeration
networkInterfaces = NetworkInterface.getNetworkInterfaces(); while (networkInterfaces.hasMoreElements()) {
NetworkInterface networkInterface = networkInterfaces.nextElement();
if (networkInterface.isLoopback() || !networkInterface.isUp()) {
continue;
}
Enumeration
inetAddresses = networkInterface.getInetAddresses(); while (inetAddresses.hasMoreElements()) {
InetAddress inetAddress = inetAddresses.nextElement();
if (inetAddress instanceof Inet4Address) {
String ipAddress = inetAddress.getHostAddress();
System.out.println("本机IP地址: " + ipAddress);
break;
}
}
}
try (ServerSocket socket = new ServerSocket(0)) {
int port = socket.getLocalPort();
System.out.println("可用端口号: " + port);
} catch (SocketException e) {
e.printStackTrace();
}
} catch (SocketException e) {
e.printStackTrace();
}
}
}
在上面的示例中,我们使用NetworkInterface.getNetworkInterfaces()方法获取本机的所有网络接口。然后,我们遍历每个网络接口,并检查是否为回环接口或已关闭的接口。如果是,则跳过当前接口。接下来,我们获取每个接口的所有IP地址,并遍历它们。
我们通过检查inetAddress instanceof Inet4Address来确定地址是否为IPv4地址。如果条件成立,我们获取IPv4地址并打印到控制台。
接下来,我们使用ServerSocket类创建一个临时的服务器套接字,并传递端口号为0,以便让操作系统自动分配一个可用的端口号。我们通过getLocalPort()方法获取实际分配的端口号,并将其打印到控制台。
输出结果可能类似于:
本机IP地址: 192.168.1.100
可用端口号: 56789
通过这种方式,你可以获取到本机的IP地址和一个可用的端口号。
-
要在Java中获取本机的IP地址和端口号,你可以使用java.net包中的InetAddress和ServerSocket类。下面是一个示例代码,演示了如何获取本机的IP地址和一个可用的端口号:
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.SocketException;
import java.net.UnknownHostException;
public class GetIPAddressAndPort {
public static void main(String[] args) {
try {
// 获取本机的IP地址
InetAddress localhost = InetAddress.getLocalHost();
String ipAddress = localhost.getHostAddress();
System.out.println("本机IP地址: " + ipAddress);
// 获取一个可用的端口号
try (ServerSocket socket = new ServerSocket(0)) {
int port = socket.getLocalPort();
System.out.println("可用端口号: " + port);
} catch (SocketException e) {
e.printStackTrace();
}
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
在上面的示例中,我们首先通过调用InetAddress.getLocalHost()方法获取本机的InetAddress对象。然后,我们可以使用getHostAddress()方法获取本机的IP地址,并将其打印到控制台。
接下来,我们通过创建一个ServerSocket对象并传递端口号为0,来获取一个可用的端口号。传递0作为端口号会使操作系统自动分配一个空闲的端口号。我们可以通过getLocalPort()方法获取实际分配的端口号,并将其打印到控制台。
输出结果可能类似于:
本机IP地址: 192.168.1.100
可用端口号: 56789
通过这种方式,你可以获取到本机的IP地址和一个可用的端口号。