`

java 通过NetworkInterface获取本机ip地址信息

    博客分类:
  • java
 
阅读更多

Socket:一台机器的通讯节点称为socket,在java中,socket是java.net包里面的Socket,ServerSocket,DataGramSocket,MultiSocket的实例。
IP地址java中用java.net.InetAddress来表示。
java network address class包括:
InetAddress:ip地址或者域名,指向远程地址。如果域名解析不了,则出错。
           抽象类,有两个子类:Inet4Address和Inet6Address。这两个类智能通过InetAddress的静态方法获取,不能直接构造。包可见。
InetSocketAddress extends SocketAddress:ip socket地址,用{ip,port}或者{hostname,port}表示。也能够单独用port构造,表示本机ip地址,所有本机网络地址。
NetwordInterface:本机网络接口,由多个网络接口名称和对应的网络接口的ip地址列表构成。

网络主机有两个特殊的网络地址:
loopback:127.0.0.1  用来检测本机的host名称,或者检测本地ip地址是否可用
wildcard:0.0.0.0 绑定了本机所有的ip地址
import java.io.IOException;
import java.net.Inet4Address;
import java.net.InterfaceAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;


public class LocalIP {

	private static final void printIp() {

        try {
            for (Enumeration<NetworkInterface> e = NetworkInterface.getNetworkInterfaces(); e.hasMoreElements();) {
                NetworkInterface item = e.nextElement();

                System.out.println(item.toString());
                System.out.println(item.getMTU() + " " + item.isLoopback() + " " + item.isPointToPoint() + " " + item.isUp() + " " + item.isVirtual());

                for (InterfaceAddress address : item.getInterfaceAddresses()) {
                    if (address.getAddress() instanceof Inet4Address) {
                        Inet4Address inet4Address = (Inet4Address) address.getAddress();
                        System.out.println(inet4Address.getHostAddress());
                        System.out.println(inet4Address.isLinkLocalAddress() + " " + inet4Address.isLoopbackAddress() + " " + inet4Address.isMCGlobal() + " " + inet4Address.isMulticastAddress());
                    }
                }
            }
        } catch (IOException ex) {

        }
    }
	public static void main(String[] args) {
		printIp();
	}
}
 name:lo (Software Loopback Interface 1)
-1 true false true false
127.0.0.1
false true false false
name:net0 (WAN Miniport (SSTP))
-1 false false false false
name:net1 (WAN Miniport (L2TP))
-1 false false false false
name:net2 (WAN Miniport (PPTP))
-1 false false false false
name:ppp0 (WAN Miniport (PPPOE))
-1 false false false false
name:eth0 (WAN Miniport (IPv6))
-1 false false false false
name:eth1 (WAN Miniport (Network Monitor))
-1 false false false false
name:eth2 (WAN Miniport (IP))
-1 false false false false
name:ppp1 (RAS Async Adapter)
-1 false false false false
name:eth3 (Realtek RTL8168D/8111D ??? PCI-E ??×????? NIC (NDIS 6.20))
1500 false false false false
name:net3 (Intel(R) Centrino(R) Advanced-N 6200 AGN)
1500 false false true false
10.16.194.27
false false false false
name:net4 (Teredo Tunneling Pseudo-Interface)
1280 false true false false
name:net5 (Microsoft ISATAP Adapter)
1280 false true false false
name:eth4 (SINFOR SSL VPN CS Support System VNIC)
1400 false false false false
name:net6 (Bluetooth ?豸(RFCOMM Э?é TDI))
-1 false false false false
name:eth5 (Bluetooth ?豸(???????ò??)
1500 false false false false
name:eth6 (Array Networks SSL VPN Adapter)
-1 false false false false
name:net7 (WAN Miniport (IKEv2))
-1 false false false false
name:net8 (Microsoft ISATAP Adapter #5)
1280 false true false false
name:net9 (Microsoft ISATAP Adapter #3)
1280 false true false false
name:net10 (Microsoft ISATAP Adapter #2)
1280 false true false false
name:net11 (Microsoft ISATAP Adapter #4)
-1 false false false false
name:net12 (Intel(R) Centrino(R) Advanced-N 6200 AGN-QoS Packet Scheduler-0000)
-1 false false false false
name:net13 (Intel(R) Centrino(R) Advanced-N 6200 AGN-WFP LightWeight Filter-0000)
-1 false false false false
name:eth7 (Realtek RTL8168D/8111D ??? PCI-E ??×????? NIC (NDIS 6.20)-QoS Packet Scheduler-0000)
-1 false false false false
name:eth8 (Realtek RTL8168D/8111D ??? PCI-E ??×????? NIC (NDIS 6.20)-WFP LightWeight Filter-0000)
-1 false false false false
name:eth9 (WAN Miniport (Network Monitor)-QoS Packet Scheduler-0000)
-1 false false false false
name:eth10 (WAN Miniport (IP)-QoS Packet Scheduler-0000)
-1 false false false false
name:eth11 (WAN Miniport (IPv6)-QoS Packet Scheduler-0000)
-1 false false false false
name:eth12 (SINFOR SSL VPN CS Support System VNIC-QoS Packet Scheduler-0000)
-1 false false false false
name:eth13 (SINFOR SSL VPN CS Support System VNIC-WFP LightWeight Filter-0000)
-1 false false false false
 
分享到:
评论

相关推荐

    java获取本机IP地址

    总结来说,Java中获取本机IP地址涉及到`InetAddress`和`NetworkInterface`类的使用,以及对网络接口的理解。对于公网IP的获取,通常需要借助外部服务。在实际开发中,根据具体需求选择合适的方法。在提供的`GetIp....

    java IP地址工具类,java IP地址获取,java获取客户端IP地址

    在Java编程中,获取IP地址是一项常见的任务,特别是在网络编程和服务器开发中。这个"java IP地址工具类"是为了解决这个问题而设计的。它提供了便捷的方法来获取和处理IP地址,尤其对于获取客户端IP地址在Web应用中至...

    Java 获取本机IP

    下面的代码示例展示了如何通过`NetworkInterface`类和`InetAddress`类获取本机的IP地址以及MAC地址: ```java import java.net.*; import java.util.*; public class GetIP { public static void main(String[] ...

    java获取linux服务器上的IP操作

    这将显示eth0的IP地址信息,包括inet地址、广播地址、子网掩码等。 Java获取Linux服务器上的IP地址的方法 在Java中,我们可以使用NetworkInterface类来获取网络接口的信息。NetworkInterface类提供了一个方法...

    java编程实现获取服务器IP地址及MAC地址的方法

    首先,获取服务器的IP地址通常涉及到`java.net`包中的类,如`InetAddress`和`NetworkInterface`。以下是一个简单的示例方法,用于获取本地服务器的IP地址: ```java public static String getLocalIP() { String ...

    获取本地IP地址的小程序

    标题中的"获取本地IP地址的小程序",通常是指获取本机连接到网络时的IP地址。这可能包括局域网IP和公网IP。在Java中,我们可以通过以下几种方式获取: 1. 使用`InetAddress`类:这个类提供了获取IP地址和主机名的...

    Java 自动获取本机IP、MAC地址

    Java 自动获取本机IP和MAC地址是一项常见的需求,在网络编程和系统管理中经常会用到。这个小工具利用了Java的网络和系统API,能够帮助用户便捷地查看本机的网络配置信息。以下是对相关知识点的详细说明: 1. **Java...

    java 获取客户端ip mac地址

    在Java Web开发中,有时我们需要获取客户端的IP地址甚至是MAC地址,以便进行安全验证、用户行为追踪等操作。本文将详细介绍如何通过Java来实现这一功能。 #### 一、获取客户端 IP 地址 获取客户端的IP地址通常在...

    java拿取本机正在使用的ip及本机mac地址

    在Java中获取本机IP地址,我们可以使用`java.net.NetworkInterface`和`java.net.InetAddress`这两个类。以下是一段获取本机IP地址的示例代码: ```java import java.net.*; import java.util.Enumeration; public ...

    获取本手机的ip地址代码

    ### 获取本手机的IP地址代码知识点详解 #### 一、知识点概述 在移动应用开发过程中,有时我们需要获取设备(如手机)的IP地址,以便进行网络通信或调试等操作。本文将详细介绍如何通过Java代码来实现这一功能,并...

    跨平台 获取本机IP/MAC地址,检测是否内网IP,字符串IP转换成Number地址

    本文将深入探讨如何在不同的操作系统上获取本机的IP和MAC地址,以及如何判断一个IP地址是否为内网IP,并将字符串形式的IP地址转换为数值表示。我们将主要关注以下几个知识点: 1. **跨平台获取本机IP地址**: 跨...

    java获取本机IP

    在Java编程中,获取本机IP地址是一项常见的任务,特别是在网络通信和服务器开发中。本文将详细介绍如何在Java中获取本机IP,并针对不同操作系统可能出现的问题进行解析。 首先,最简单的方法是使用`InetAddress`类...

    获取系统IP地址浏览器java

    综上所述,获取系统IP地址在Java中主要通过`InetAddress`和`NetworkInterface`类实现。对于浏览器环境,需要考虑到安全策略和API限制。在实际应用中,开发者应当充分理解网络编程的概念,同时关注浏览器和Java平台的...

    android手机获取上网的ip地址

    4. 获取IP地址:在找到有效的网络接口后,调用`NetworkInterface.getInetAddresses()`获取该接口下的所有IP地址。 5. 判断IP类型:筛选出IPv4地址,因为通常我们需要的是公网IPv4地址。 6. 请求外部服务验证:为了...

    抓网页获取本机ip地址java.pdf

    在Java编程中,获取本机IP地址有多种方法,而从...因此,对于获取本机IP地址,更推荐使用Java的`InetAddress`类或`NetworkInterface`类,它们可以从操作系统获取本机的网络接口信息,包括IP地址,而无需依赖外部网站。

    Android开发获取手机内网IP地址与外网IP地址的详细方法与源码实例

    在移动网络下,可以通过NetworkInterface获取当前的内网IP地址。下面是相应的源码实例: ```java public static String getHostIp() { try { for (Enumeration&lt;NetworkInterface&gt; en = NetworkInterface....

    java做的能查询本机IP的

    在Java中,获取本机IP地址主要通过`java.net`包中的类和方法实现。以下是一些常用的方法: 1. **InetAddress类**:这是Java中最核心的类,用于处理IP地址和主机名。`getLocalHost()`方法可以获取本机主机名和IP地址...

    java动态修改IP程序

    3. **网络接口(Network Interface)**:在Java中,`java.net.NetworkInterface`类提供了与网络接口相关的操作,包括获取所有网络接口、查找特定接口、获取接口的IP地址等。虽然不能直接修改IP,但这个类可以帮助...

    java通过ip获取mac地址源代码.rar

    在Java编程语言中,获取一个特定IP地址对应的MAC(Media Access Control)地址是一项常见的网络编程任务。MAC地址是网络设备在网络层的物理地址,用于标识网络接口控制器(NIC)。在局域网(LAN)中,MAC地址是唯一...

    Java获取客户端IP及Mac地址(同网段).rar

    但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或192.168.1.110,而并不是客户端的真实IP。所以...

Global site tag (gtag.js) - Google Analytics