推薦答案
要獲取當前主機的IP地址,可以使用Java的InetAddress類。InetAddress類提供了一些靜態方法來獲取主機的IP地址和主機名。下面是一個簡單的示例代碼來獲取當前主機的IP地址:
import java.net.InetAddress;
import java.net.UnknownHostException;
public class Main {
public static void main(String[] args) {
try {
InetAddress localhost = InetAddress.getLocalHost();
String ip = localhost.getHostAddress();
System.out.println("IP Address: " + ip);
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
在上面的代碼中,我們使用InetAddress.getLocalHost()方法獲取本地主機的InetAddress對象。然后,我們可以使用getHostAddress()方法來獲取主機的IP地址。最后,我們將IP地址打印出來。
請注意,getLocalHost()方法可能會拋出UnknownHostException異常,如果無法確定本地主機的IP地址。
運行上述代碼,你將獲得類似以下輸出的結果:
IP Address: 192.168.0.123
這是當前主機的IP地址。
其他答案
-
獲取當前主機的IP地址有很多種方法。一種常用的方法是使用NetworkInterface類遍歷所有網絡接口,并檢查每個接口的IP地址。下面是一個示例代碼來獲取當前主機的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 interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface networkInterface = interfaces.nextElement();
Enumeration addresses = networkInterface.getInetAddresses();
while (addresses.hasMoreElements()) {
InetAddress address = addresses.nextElement();
if (!address.isLoopbackAddress() && address.isSiteLocalAddress()) {
System.out.println("IP Address: " + address.getHostAddress());
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
}
}
在上面的代碼中,我們通過調用NetworkInterface.getNetworkInterfaces()方法來獲取所有網絡接口的枚舉。然后,我們遍歷每個網絡接口,并調用getInetAddresses()方法來獲取該接口的所有IP地址。我們檢查每個地址,排除回環地址和非本地鏈接地址,然后將其打印出來。
運行上述代碼,你將獲得類似以下輸出的結果:
IP Address: 192.168.0.123
這是當前主機的IP地址。
-
獲取當前主機的IP地址可以通過使用Java的NetworkInterface和InetAddress類的組合來實現。下面是一個示例代碼來獲取當前主機的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 networkInterfaces = NetworkInterface.getNetworkInterfaces();
while (networkInterfaces.hasMoreElements()) {
NetworkInterface networkInterface = networkInterfaces.nextElement();
Enumeration inetAddresses = networkInterface.getInetAddresses();
while (inetAddresses.hasMoreElements()) {
InetAddress inetAddress = inetAddresses.nextElement();
if (!inetAddress.isLoopbackAddress() && !inetAddress.isLinkLocalAddress() && inetAddress.isSiteLocalAddress()) {
System.out.println("IP Address: " + inetAddress.getHostAddress());
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
}
}
在上面的代碼中,我們首先獲取網絡接口的枚舉對象,通過調用NetworkInterface.getNetworkInterfaces()方法。然后,我們遍歷每個網絡接口,并獲取每個接口的IP地址枚舉對象,通過調用getInetAddresses()方法。最后,我們過濾掉回環地址和鏈路本地地址,只保留站點本地地址,然后打印出這些地址。
運行上述代碼,你將獲得類似以下輸出的結果:
IP Address: 192.168.0.123
這是當前主機的IP地址。
以上是三種獲取當前主機IP地址的方法。你可以根據自己的需求選擇適合的方法來獲得當前主機的IP地址。