`
xiefeifeihu
  • 浏览: 99324 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

获取本机IP的方法

阅读更多
public static String[] getAllLocalIP() {

    String[] localServers = null;

    try {

        InetAddress addr = InetAddress.getLocalHost();

        String hostName = addr.getHostName().toString();

        // 获取本机ip

        InetAddress[] ipsAddr = InetAddress.getAllByName(hostName);

        localServers = new String[ipsAddr.length];

        for (int i = 0; i < ipsAddr.length; i++) {

            if (ipsAddr[i] != null) {

                localServers[i] = ipsAddr[i].getHostAddress().toString();

            }

        }

    } catch (Exception e) {

    }

    return localServers;

}

  

这种方法在Windows下是没问题的,但是在Linux下运行的时候很有可能会是127.0.0.1,修改host虽然可以解决,但并不是个明智之举。下面这种方法在Windows和Linux下都可以获得正确的IP:

/**

 * 取得本机IP(可能有多个网卡,Linux和Windows都适用)

 * 

 * @return List

 */

public static List getAllLocalIP() {

    List localServers = new ArrayList();

    try {

        Enumeration netInterfaces = NetworkInterface

                .getNetworkInterfaces();

        InetAddress ip = null;

        while (netInterfaces.hasMoreElements()) {

            NetworkInterface ni = netInterfaces.nextElement();

            Enumeration address = ni.getInetAddresses();

            while (address.hasMoreElements()) {

                ip = address.nextElement();

                if (!ip.isLoopbackAddress()

                        && ip

                                .getHostAddress()

                                .matches(

                                        "((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)")) {

                    // System.out.println("非回环ip:    " +

                    // ip.getHostAddress());

                    localServers.add(ip.getHostAddress());

                }

            }

        }

    } catch (SocketException e) {

        e.printStackTrace();

    }


    return localServers;

}
 
3
0
分享到:
评论

相关推荐

    获得本机IP地址,本机IP地址 获取Ip地址方法

    获得本机IP地址,本机IP地址 获取Ip地址方法,本机IP地址怎么获取

    c++获取本机IP方法

    在给定的标题“c++获取本机IP方法”和描述“c++获取本机IP方法代码,基于MFC实现”中,我们可以理解这是一个关于如何使用C++编程语言,特别是结合Microsoft Foundation Classes (MFC)库来获取本地计算机IP地址的问题...

    获取本机IP地址的代码

    - 在不同的操作系统和编程语言中,获取本机IP的方法有所不同。例如,在Python中,可以使用`socket`库来获取: ```python import socket ip = socket.gethostbyname(socket.gethostname()) ``` - 在Java中,...

    获取本机IP地址类

    在IT行业中,网络编程是不可或缺的一部分,而获取本机IP地址是其中的基础操作。这篇文本将详细介绍如何在跨平台环境中,特别是在使用Qt框架时,获取本机的IP地址信息。标题提到的“获取本机IP地址类”通常是指一个...

    C# winform 获取 本机 IP

    本文详细介绍了如何在C# WinForm应用中获取本机IP地址的方法。通过理解`Dns.GetHostEntry()`等API的功能以及如何筛选出正确的IPv4地址,开发者可以轻松地实现这一功能。此外,还提供了一些关于性能和兼容性的建议,...

    InnoSetup 获取本机IP地址

    ### InnoSetup 获取本机IP地址 在软件安装过程中,有时候需要获取当前计算机的网络配置信息,例如IP地址。这不仅对于调试有用,在某些特定情况下还可以帮助安装程序根据不同的网络环境进行自定义设置。本文将详细...

    获得本机IP地址获得本机IP地址获得本机IP地址

    标题和描述中提到的“获得本机IP地址”指的是一种常见的网络编程需求,即程序能够自动检测并获取到当前计算机在网络中的IP地址。这对于开发网络应用(如服务器端或客户端软件)时非常重要,因为IP地址是识别每台设备...

    在Delphi中获取本机的IP地址和计算机名称

    在Delphi编程环境中,获取本机的IP地址和计算机名称是常见的网络...通过学习和理解上述代码,开发者可以掌握在Delphi 7中如何利用WinSock获取本机IP地址和计算机名称的基本方法,这在开发网络应用程序时是非常有用的。

    c#获取本机IP地址

    本文详细介绍了如何使用C#获取本机IP地址的方法,并对代码进行了逐行解释。通过学习这些知识,可以帮助开发者更好地理解和掌握C#中的网络编程技术。在实际开发过程中,还需要注意选择合适的IP地址类型、优化异常处理...

    易语言取本机所有IP地址

    4. **网络_取本机所有IP**:这是易语言中的一个函数或方法,用于获取本地计算机的所有IP地址。它通过遍历网络接口并读取其配置信息来实现这个功能。 5. **整数转IP文本**:在编程中,IP地址通常以整数形式存储,...

    获取本机IP和主机名方法

    在IT领域,网络通信是不可或缺的一部分,而获取本机的IP地址和主机名则是网络通信的基础。本篇文章将深入探讨如何在不同的操作系统和编程语言环境下实现这一功能。 首先,主机名是一个标识符,用于在网络中唯一标识...

    java获取本机IP地址

    在Java中,有多种方法可以获取本机IP地址,但主要涉及到`java.net`包中的类和方法。以下是关于这个主题的详细讲解。 首先,我们需要理解IP地址的类型。IP地址分为IPv4和IPv6两种,通常我们所说的IP地址是指IPv4。...

    获取内网ip地址3种方法

    - 鉴于网络安全考虑,某些系统可能限制了获取本机IP地址的权限,需要确保程序有足够的权限运行。 综上所述,获取内网IP地址的方法多样,开发者应根据项目需求和环境选择适当的技术实现。同时,理解网络通信的基本...

    python获取本机mac地址和ip地址的方法

    在当今的网络编程和系统管理中,获取本机的MAC地址和IP地址是基础且常见的需求。...以上就是Python获取本机MAC地址和IP地址的方法,希望对大家在进行系统管理、网络编程或者开发相关应用程序时有所帮助。

    获得本机ip地址的MFC程序

    在Windows系统中,可以使用各种方法获取本机的IP地址,如Winsock API或Windows Management Instrumentation (WMI)。在这个MFC程序中,开发者可能采用了其中一种或多种方法来实现这一功能。 在提供的文件列表中,...

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

    这些方法都可以获取到本机所有网络接口的IP地址列表。 2. **获取MAC地址**: MAC地址是物理网络接口控制器的唯一标识。在Windows下,可以使用WMI(Windows Management Instrumentation)来查询NetBIOS信息获取MAC...

    获取本机IP

    总结,获取本机IP地址是一个跨平台、跨语言的问题,可以根据具体需求选择合适的方法。无论是系统命令行工具还是编程语言提供的API,都能方便地实现这一功能。了解并掌握这些基础知识对于IT从业者来说至关重要,尤其...

    C++获得本机外网ip

    ### C++ 获取本机外网IP地址方法解析 在计算机网络中,获取本机的外网IP地址是一项常见的需求,特别是在开发需要与互联网交互的应用程序时。本文将深入探讨一个具体的实现方法,该方法通过调用HTTP服务来获取当前...

    获取本机IP地址的方法

    封装好直接可以用的方法,直接获取到本机IP,记录用户操作IP这个方法非常方便

    C#编程方法:获取本机主机名和IP地址

    ### C#编程方法:获取本机主机名和IP地址 在C#开发中,经常需要获取当前计算机的主机名和IP地址,这对于网络编程、日志记录或是进行远程通信等功能非常有用。本文将详细介绍如何使用C#来实现这一功能。 #### 一、...

Global site tag (gtag.js) - Google Analytics