一、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-hk/n/324412.html