在網絡編程中,獲取本機IP地址或其他主機的IP地址是非常常見的需求。Java提供了多種方式來獲取IP地址。本文將從多個方面介紹Java如何獲取IP地址。
一、獲取本機IP地址
獲取本機IP地址的方式有多種,這裡我們介紹幾種常用的方式。
1.通過NetworkInterface獲取本機IP地址
try {
// 獲取所有網絡接口
Enumeration networkInterfaces = NetworkInterface.getNetworkInterfaces();
while (networkInterfaces.hasMoreElements()) {
// 獲取每個網絡接口的所有IP地址
Enumeration inetAddresses = networkInterfaces.nextElement().getInetAddresses();
while (inetAddresses.hasMoreElements()) {
InetAddress inetAddress = inetAddresses.nextElement();
// 排除LoopbackAddress、LinkLocalAddress、SiteLocalAddress
if (!inetAddress.isLoopbackAddress() && !inetAddress.isLinkLocalAddress() && !inetAddress.isSiteLocalAddress()) {
return inetAddress.getHostAddress();
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
2.通過InetAddress獲取本機IP地址
try {
return InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
e.printStackTrace();
}
以上兩種方式都可以獲取本機IP地址,但第一種方式更靈活,可以排除一些不需要的IP地址。
二、獲取指定主機的IP地址
Java也提供了多種方式來獲取指定主機的IP地址。
1.通過InetAddress獲取指定主機的IP地址
try {
return InetAddress.getByName("www.baidu.com").getHostAddress();
} catch (UnknownHostException e) {
e.printStackTrace();
}
2.通過Socket獲取指定主機的IP地址
try {
return InetAddress.getByName("www.baidu.com").getHostAddress();
} catch (UnknownHostException e) {
e.printStackTrace();
}
以上兩種方式都可以獲取指定主機的IP地址,但第二種方式更靈活,可以通過指定端口進行更多網絡操作。
三、總結
本文介紹了Java獲取IP地址的多種方式。通過NetworkInterface、InetAddress、Socket等類可以非常方便地獲取本機IP地址和其他主機的IP地址。根據不同需求可以選擇不同的方式來獲取。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/297243.html
微信掃一掃
支付寶掃一掃