一、InetAddress類的使用
Java中獲取本機IP的常見方法是使用InetAddress類。該類用於標識網絡上的主機,提供了多種獲取IP地址的方法。
通過以下代碼段獲取本機IP地址:
InetAddress addr = InetAddress.getLocalHost();
String ip = addr.getHostAddress();
System.out.println("本機IP地址 :" + ip);
上述代碼中,首先通過靜態方法getLocalHost()獲取本地主機地址信息,然後調用getHostAddress()方法獲取本機IP地址。該方法返回一個字符串,包含了本機的IPv4或IPv6地址。
除了上述方法,InetAddress類還提供了其它一些用於獲取IP地址的方法,如通過域名獲取IP地址、獲取本機主機名等。
二、NetworkInterface類的使用
除了InetAddress類,Java還提供了NetworkInterface類,該類可用於獲取與當前主機接口相關的信息,包括IP地址、MAC地址等。
通過以下代碼段獲取本機所有IP地址:
Enumeration allNetInterfaces = NetworkInterface.getNetworkInterfaces();
InetAddress ip = null;
while (allNetInterfaces.hasMoreElements()) {
NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement();
Enumeration addresses = netInterface.getInetAddresses();
while (addresses.hasMoreElements()) {
ip = addresses.nextElement();
if (ip != null && ip instanceof Inet4Address) {
System.out.println("本機IP地址:" + ip.getHostAddress());
}
}
}
上述代碼中,首先通過靜態方法getNetworkInterfaces()獲取當前主機所有的網絡接口,然後遍歷所有的網絡接口,獲取每個接口的地址信息,並輸出所有IPv4地址。
三、通過Java GUI界面獲取IP地址
除了通過代碼獲取IP地址之外,Java還提供了GUI界面獲取IP地址的方法。
通過以下代碼段在GUI界面上獲取IP地址:
import java.net.InetAddress;
import javax.swing.JOptionPane;
public class IPDialog {
public static void main(String[] args)
throws Exception {
InetAddress address = InetAddress.getLocalHost();
JOptionPane.showMessageDialog(null, address.getHostAddress());
}
}
上述代碼中,首先通過靜態方法getLocalHost()獲取本地主機地址信息,然後彈出一個消息對話框,顯示本機的IP地址。
四、通過系統命令獲取IP地址
除了通過Java API獲取IP地址之外,還可以通過執行系統命令獲取IP地址。
通過以下代碼段獲取本機IP地址:
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("ifconfig");
InputStream is = process.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null) {
if (line.contains("inet ")) {
String[] tokens = line.split("\\s+");
System.out.println("IP地址 :" + tokens[1]);
}
}
br.close();
is.close();
上述代碼中,首先通過Runtime類的exec()方法執行系統命令ifconfig來獲取系統網絡配置信息,在輸出流中讀取命令結果,並查找包含inet 的行,從中提取出IP地址。
五、總結
本文詳細介紹了Java獲取本機IP的多種方法,包括使用InetAddress類、NetworkInterface類、GUI界面和系統命令等,讀者可以根據自己的需要選擇最適合自己的方法。
原創文章,作者:HEVGJ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/324412.html
微信掃一掃
支付寶掃一掃