一、獲取本機IP地址
Java可以通過InetAddress類獲取本機的IP地址,InetAddress是Java中表示IP地址的類,它可以創建InetAddress對象表示指定主機名對應的IP地址或表示IP地址字符串對應的IP地址。
示例代碼如下:
import java.net.InetAddress; public class GetLocalIpAddress { public static void main(String[] args) throws Exception{ InetAddress IP=InetAddress.getLocalHost(); System.out.println("本機IP地址為:"+IP.getHostAddress()); } }
運行結果如下:
本機IP地址為:192.168.1.1
二、獲取指定域名的IP地址
Java可以通過InetAddress類獲取指定域名的IP地址,通過域名解析得到對應的IP地址。
示例代碼如下:
import java.net.InetAddress; public class GetIpAddress { public static void main(String[] args) throws Exception{ InetAddress address = InetAddress.getByName("www.baidu.com"); System.out.println("百度IP地址為:" + address.getHostAddress()); } }
運行結果如下:
百度IP地址為:104.193.88.74
三、獲取本機所有IP地址
一個主機可能有多個IP地址,可以通過NetworkInterface類獲取該主機所有與網絡接口相關的IP地址。
示例代碼如下:
import java.net.InetAddress; import java.net.NetworkInterface; import java.util.Enumeration; public class GetAllIpAddress { public static void main(String[] args) throws Exception{ Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); while(interfaces.hasMoreElements()){ NetworkInterface networkInterface = interfaces.nextElement(); Enumeration addresses = networkInterface.getInetAddresses(); while(addresses.hasMoreElements()){ InetAddress address = addresses.nextElement(); if (!address.isLinkLocalAddress() && !address.isLoopbackAddress() && address.isSiteLocalAddress()){ System.out.println(networkInterface.getName() + " " + address.getHostAddress()); } } } } }
運行結果如下:
eth0 192.168.1.1 eth1 10.10.10.1
四、總結
通過InetAddress類和NetworkInterface類,在Java中可以方便地獲取本機IP地址、指定域名的IP地址、以及本機所有的IP地址。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/309584.html