1. 程式人生 > >Java獲取本機的ip地址

Java獲取本機的ip地址

說到獲取ip地址,有人可能會想到,直接用InetAddress.getLocalHost().getHostAddress()。實際上這個是不對的,因為一臺機器上可能有多個網路介面(一般指網絡卡或者虛擬網絡卡),因此也就有多個ip地址,所以我們需要列出所有的網路介面及其對應的ip地址。程式碼如下:

public static void main(String[] args) throws Exception {
        Enumeration<NetworkInterface> netInterfaces = NetworkInterface.getNetworkInterfaces();
        while (netInterfaces.hasMoreElements()) {
            NetworkInterface ni = netInterfaces.nextElement();
            System.out.println("網路介面名稱:" + ni.getDisplayName());
            Enumeration<InetAddress> ia = ni.getInetAddresses();
            while (ia.hasMoreElements()) {
                InetAddress ip = ia.nextElement();
                System.out.println(ip.getHostAddress());
            }
        }
    }
網路介面名稱:Software Loopback Interface 1
0:0:0:0:0:0:0:1
127.0.0.1
網路介面名稱:WAN Miniport (SSTP)
網路介面名稱:Microsoft ISATAP Adapter #6
fe80:0:0:0:0:5efe:c0a8:bf01%3
網路介面名稱:Microsoft Kernel Debug Network Adapter
網路介面名稱:Microsoft ISATAP Adapter #4
fe80:0:0:0:0:5efe:c0a8:167%5
網路介面名稱:WAN Miniport (Network Monitor)
網路介面名稱:Microsoft ISATAP Adapter #5
網路介面名稱:WAN Miniport (IPv6)
網路介面名稱:Microsoft ISATAP Adapter #2
fe80:0:0:0:0:5efe:c0a8:b501%9
網路介面名稱:WAN Miniport (IP)
網路介面名稱:WAN Miniport (PPPOE)
網路介面名稱:WAN Miniport (L2TP)
網路介面名稱:Microsoft Hosted Network Virtual Adapter
fe80:0:0:0:b9b1:54f2:26a3:e07f%13
192.168.191.1
網路介面名稱:Microsoft Teredo Tunneling Adapter
2001:0:5ef5:79fd:c5b:37fd:3f57:fe98
fe80:0:0:0:c5b:37fd:3f57:fe98%14
網路介面名稱:VMware Virtual Ethernet Adapter for VMnet8
fe80:0:0:0:39ac:b0f8:cb0c:2868%15
192.168.181.1
網路介面名稱:Broadcom 802.11 ÍøÂçÊÊÅäÆ÷ÌṩÎÞÏ߾ÖÓòÍø
fe80:0:0:0:3cb8:6486:b40b:1cb5%16
192.168.1.103
網路介面名稱:VMware Virtual Ethernet Adapter for VMnet1
fe80:0:0:0:2dd6:2ca:d599:b57e%17
192.168.72.1
網路介面名稱:Microsoft Wi-Fi Direct Virtual Adapter
fe80:0:0:0:4cad:987a:b4a1:f1bb%18
網路介面名稱:Realtek PCIe FE Family Controller
fe80:0:0:0:dbb:193c:865f:c467%19
網路介面名稱:WAN Miniport (PPTP)
網路介面名稱:WAN Miniport (IKEv2)
網路介面名稱:Microsoft ISATAP Adapter #8
fe80:0:0:0:0:5efe:c0a8:4801%22
網路介面名稱:Remote NDIS based Internet Sharing Device
網路介面名稱:Realtek PCIe FE Family Controller-WFP Native MAC Layer LightWeight Filter-0000
網路介面名稱:Realtek PCIe FE Family Controller-Liebao Wifi NAT Driver-0000
網路介面名稱:Realtek PCIe FE Family Controller-QoS Packet Scheduler-0000
網路介面名稱:Realtek PCIe FE Family Controller-WFP 802.3 MAC Layer LightWeight Filter-0000
網路介面名稱:Broadcom 802.11 ÍøÂçÊÊÅäÆ÷ÌṩÎÞÏ߾ÖÓòÍø¡£-WFP Native MAC Layer LightWeight Filter-00
網路介面名稱:Broadcom 802.11 ÍøÂçÊÊÅäÆ÷ÌṩÎÞÏ߾ÖÓòÍø¡£-Virtual WiFi Filter Driver-00
網路介面名稱:Broadcom 802.11 ÍøÂçÊÊÅäÆ÷ÌṩÎÞÏ߾ÖÓòÍø¡£-Native WiFi Filter Driver-00
網路介面名稱:Broadcom 802.11 ÍøÂçÊÊÅäÆ÷ÌṩÎÞÏ߾ÖÓòÍø¡£-Liebao Wifi NAT Driver-00
網路介面名稱:Broadcom 802.11 ÍøÂçÊÊÅäÆ÷ÌṩÎÞÏ߾ÖÓòÍø¡£-QoS Packet Scheduler-00
網路介面名稱:Broadcom 802.11 ÍøÂçÊÊÅäÆ÷ÌṩÎÞÏ߾ÖÓòÍø¡£-WFP 802.3 MAC Layer LightWeight Filter-00
網路介面名稱:Microsoft Wi-Fi Direct Virtual Adapter-WFP Native MAC Layer LightWeight Filter-0000
網路介面名稱:Microsoft Hosted Network Virtual Adapter-WFP Native MAC Layer LightWeight Filter-0000
網路介面名稱:Microsoft Hosted Network Virtual Adapter-Native WiFi Filter Driver-0000
網路介面名稱:Microsoft Wi-Fi Direct Virtual Adapter-Native WiFi Filter Driver-0000
網路介面名稱:Microsoft Wi-Fi Direct Virtual Adapter-Liebao Wifi NAT Driver-0000
網路介面名稱:Microsoft Wi-Fi Direct Virtual Adapter-QoS Packet Scheduler-0000
網路介面名稱:Microsoft Wi-Fi Direct Virtual Adapter-WFP 802.3 MAC Layer LightWeight Filter-0000
網路介面名稱:Microsoft Hosted Network Virtual Adapter-Liebao Wifi NAT Driver-0000
網路介面名稱:Microsoft Hosted Network Virtual Adapter-QoS Packet Scheduler-0000
網路介面名稱:Microsoft Hosted Network Virtual Adapter-WFP 802.3 MAC Layer LightWeight Filter-0000
網路介面名稱:WAN Miniport (IP)-WFP Native MAC Layer LightWeight Filter-0000
網路介面名稱:WAN Miniport (IP)-Liebao Wifi NAT Driver-0000
網路介面名稱:WAN Miniport (IP)-QoS Packet Scheduler-0000
網路介面名稱:WAN Miniport (IPv6)-WFP Native MAC Layer LightWeight Filter-0000
網路介面名稱:WAN Miniport (IPv6)-Liebao Wifi NAT Driver-0000
網路介面名稱:WAN Miniport (IPv6)-QoS Packet Scheduler-0000
網路介面名稱:WAN Miniport (Network Monitor)-WFP Native MAC Layer LightWeight Filter-0000
網路介面名稱:WAN Miniport (Network Monitor)-Liebao Wifi NAT Driver-0000
網路介面名稱:WAN Miniport (Network Monitor)-QoS Packet Scheduler-0000

其中像fe80:0:0:0:0:5efe:c0a8:bf01%3這種是IPV6格式的地址,共128位,每16位用分號分開,最後的3%表示這個表示該地址僅限於標號為3的網路介面,而在其他網路介面這個地址是無效的。