在網絡編程中,獲取本機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-hk/n/297243.html