一、IP地址和端口號
在了解Java獲取本機IP地址前,我們應該先了解下IP地址和端口號。
IP地址是指互聯網協議地址,它用於標識一個設備在網絡中的位置。在IPv4中,它是由32位二進制數表示;在IPv6中,它是由128位二進制數表示。而端口號則是用於標識進程的邏輯地址,它是由16位二進制數表示。
在Java中,我們可以使用 InetAddress 類來獲取本機IP地址。
二、InetAddress類
InetAddress 類用於獲取和操作IP地址和DNS信息。我們可以通過 InetAddress 類的靜態方法來獲取本機的IP地址。
import java.net.*;
public class IPAddress {
public static void main(String[] args) throws UnknownHostException {
InetAddress myIP = InetAddress.getLocalHost();
System.out.println("My IP Address is:");
System.out.println(myIP.getHostAddress());
}
}
運行以上代碼,我們可以得到本機的IP地址:
My IP Address is: 192.168.1.100
我們也可以通過以下代碼獲取本機的主機名:
import java.net.*;
public class Hostname {
public static void main(String[] args) throws UnknownHostException {
InetAddress myIP = InetAddress.getLocalHost();
System.out.println("My Hostname is:");
System.out.println(myIP.getHostName());
}
}
運行以上代碼,我們可以得到本機的主機名:
My Hostname is: DESKTOP-ABCDE
三、NetworkInterface類
除了使用 InetAddress 類獲取本機的IP地址,還可以使用 NetworkInterface 類來獲取本機的IP地址。NetworkInterface 類用於表示一個網絡接口,如網卡、無線網卡等。
import java.net.*;
import java.util.Enumeration;
public class NetworkInterfaceTest {
public static void main(String[] args) throws SocketException {
Enumeration ifaceList = NetworkInterface.getNetworkInterfaces();
while (ifaceList.hasMoreElements()) {
NetworkInterface iface = ifaceList.nextElement();
System.out.println(iface.getName() + ":");
Enumeration addressList = iface.getInetAddresses();
while (addressList.hasMoreElements()) {
InetAddress address = addressList.nextElement();
System.out.println(" " + address.getHostAddress());
}
}
}
}
運行以上代碼,我們可以得到本機的所有IP地址:
eth0:
192.168.1.100
lo:
127.0.0.1
四、總結
通過 InetAddress 類和 NetworkInterface 類可以很方便地獲取本機的IP地址。在實際開發中,我們需要根據具體的需求來選擇使用哪種方法來獲取IP地址。
原創文章,作者:WGSX,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/145436.html
微信掃一掃
支付寶掃一掃