`

获取本地 ip (多网卡的情况下)

    博客分类:
  • Java
阅读更多
public String getLocalHostName() {
        String hostName;
        try {
            InetAddress addr = InetAddress.getLocalHost();
            hostName = addr.getHostAddress();
        } catch (Exception ex) {
            hostName = "";
        }
        return hostName;
    }

public String[] getAllLocalHostIP() {
    String[] ret = null;
    try {
        String hostName = getLocalHostName();
        if (hostName.length() > 0) {
            InetAddress[] addrs = InetAddress.getAllByName(hostName);
            if (addrs.length > 0) {
                ret = new String[addrs.length];
                for (int i = 0; i < addrs.length; i++) {
                    ret[i] = addrs[i].getHostAddress();
                }
            }
        }

        } catch (Exception ex) {
            ret = null;
        }
        return ret;
    }
分享到:
评论
1 楼 zhiweiv 2009-04-07  
你这个好像有问题,在Windows 7下使用获取全部ip的时候会返回一个网卡的ipv4地址还有link local ipv6地址,尽管没有设定它。同时,在我的电脑上在连上internet的时候还会获得Tunnel adapter Teredo Tunneling Pseudo-Interface的两个ipv6地址。isSiteLocalAddress()方法对于真实的ipv4地址会返回true,而其他的地址都会返回false

        String hostName=System.getenv("USERDOMAIN");
        InetAddress[] group = InetAddress.getAllByName(hostName);
        for (InetAddress add : group) {
            System.out.println(add.getHostAddress()+"  "+add.isSiteLocalAddress());
        }


下面就是我的输出内容
10.76.35.11  true
192.168.1.3  true
fe80:0:0:0:d1eb:8a57:f679:85d7%12  false
fe80:0:0:0:e8fc:122:5ef:f350%22  false
fe80:0:0:0:1c77:a2cf:c4d1:3e0d%16  false
2001:0:cf2e:3096:1c77:a2cf:c4d1:3e0d  false

相关推荐

    Qt获取IP地址、MAC地址等网卡信息,区分本地网卡、无线网卡和虚拟网卡

    本文将深入探讨如何利用Qt库来获取这些信息,并区分本地网卡、无线网卡和虚拟网卡。 首先,Qt本身并不直接提供获取网卡信息的API,但我们可以借助于标准C++库如`&lt;ifaddrs.h&gt;`(在Unix-like系统)或Windows API(在...

    C#实现获取多网卡IP地址方法

    本篇将深入探讨如何使用C#来实现获取多网卡IP地址的方法。 在Windows系统中,网络接口通常被称为网卡(Network Interface Card, NIC),每个网卡可能有多个IP地址,包括IPv4和IPv6。获取这些信息涉及到对系统网络...

    Delphi获取本机所有网卡MAC和IP(支持多网卡).rar

    总结来说,这个Delphi项目提供了获取本地计算机所有网卡MAC和IP地址的功能,通过调用Windows API函数`GetAdapterInfo`并解析返回的数据结构,实现了对多网卡环境的支持。这对于网络相关的应用开发,如网络监控、诊断...

    获取本地的“物理”网卡的IP地址和MAC地址

    在各种网络操作中,了解并获取本地计算机的物理(也称为硬件)网卡的IP地址和MAC地址是非常关键的。这些信息对于网络配置、故障排查和安全监控都有重要作用。下面将详细阐述如何获取这些信息,以及它们在网络中的...

    GetAdaptersInof获取本地连接网卡信息,排除无线网卡和虚拟网卡

    这是因为这些类型的网卡在某些情况下可能不是我们所关心的,例如在进行网络性能测试或者物理网络设备的管理时。 `GetAdaptersInfo`函数是通过调用`iphlpapi.lib`库中的函数实现的,它返回一个`IP_ADAPTER_INFO`...

    C#(WPF)获取本地IP地址 C#编程

    在C#编程中,Windows Presentation Foundation (WPF)是一个用于构建桌面应用的框架,而获取本地IP地址是网络编程中的常见需求。这篇文章将详细介绍如何在C# WPF应用中实现这个功能,适合初学者学习。 首先,我们...

    纯PB获取IP、网卡地址

    标题中的“纯PB获取IP、网卡地址”指的是在PowerBuilder(PB)环境中,通过编程方式获取计算机的IP地址和网络适配器(网卡)信息。PowerBuilder是一款流行的可视化的面向对象的开发工具,主要用于构建数据库应用系统...

    C#获取本机所有网卡的IP地址

    本文将详细讲解如何使用C#获取本机所有网卡(包括有线和无线)的IP地址。 首先,我们从标题"**C#获取本机所有网卡的IP地址**"出发,理解其核心任务。在Windows操作系统中,一台计算机可能有多个网络接口,如以太...

    C#编程获取局域网IP及网卡MAC地址

    C#提供了System.Net.NetworkInformation命名空间,其中包含了一些类和方法,可以帮助我们获取本地或远程计算机的IP信息。 `IPHostEntry`类是C#中用于存储主机名和IP地址信息的类,我们可以使用`Dns.GetHostEntry()`...

    c#获取本地IP、本地MAC

    在C#中,可以使用System.Net.NetworkInformation命名空间下的类来获取本地IP地址。例如,`System.Net.Dns.GetHostEntry("localhost")`或`IPAddress[] addresses = Dns.GetHostAddresses(Dns.GetHostName())`方法可以...

    Get Local IP (VB6.0获取本地IP)

    在VB6.0环境下,获取本地IP地址是一个常见的任务,特别是在开发网络应用程序时。本地IP地址是计算机在局域网或互联网上的唯一标识符,它允许设备之间进行通信。本教程将详细介绍如何利用Visual Basic 6.0和Windows ...

    C/C++:Windows编程—代码获取本地所有网卡信息(网卡描述,IP地址,子网掩码,MAC地址)demo代码

    https://blog.csdn.net/qq_29542611/article/details/84711243 C/C++:Windows编程—代码获取本地所有网卡信息(网卡描述,IP地址,子网掩码,MAC地址) 示例程序demo

    C# 编程 获取局域网IP及网卡MAC地址

    在C#中,可以使用`System.Net.NetworkInformation`命名空间下的类来获取本地IP信息。以下是一个示例: ```csharp using System.Net.NetworkInformation; public string GetLocalIPAddress() { var host = Dns....

    Java怎么获取多网卡本地ip

    在Java编程中,获取本地IP地址是一项常见的任务,特别是在多网卡环境中,可能需要获取所有网络接口的IP。以下是对标题和描述中涉及知识点的详细解释: 1. **Java网络编程基础**: Java提供了丰富的网络编程API,...

    vs获取本机网卡ip/子网掩码/默认网关信息并排除虚拟网卡.rar

    总之,这个项目展示了如何利用C++和Windows API在VS环境下编写程序,以获取和展示本机物理网卡的IP地址、子网掩码和默认网关信息,同时排除虚拟网卡。对于学习网络编程和C++的开发者来说,这是一个很好的实践案例,...

    VB.NET 2008 获取本机IP、网卡MAC地址、计算机名

    在VB.NET 2008编程环境中,获取本机的IP地址、网卡MAC地址以及计算机名是常见的系统信息查询任务。这些信息对于网络通信、系统管理以及软件开发都有着重要的作用。下面将详细介绍如何利用VB.NET 2008实现这些功能。 ...

    Qt5 获取所有网卡的地址信息

    在Qt5中,获取所有网卡的地址信息是网络编程中的常见需求,特别是在多网卡系统上,可能需要根据不同的网络接口进行特定的网络通信。Qt5提供了丰富的网络编程API,使得开发者能够方便地访问和操作网络接口。下面将...

    bat批处理获取正在使用的网卡名称

    bat批处理获取正在使用的网卡名称,可用于批处理设置IP地址

    Shell脚本获取本地网卡IP、mac地址、子网掩码、dns IP、外网IP

    #/usr/bin/env bash # Name: get_network_info.sh # Author: Purple_Grape # This is a script to gather network information of your Linux system. # Test under Ubuntu 10.04 ...IP=`LANG=C ifconfig $NIC | awk

    qt 获取本机的公网IP、内网IP、网关

    在IT领域,网络通信是至关重要的部分,而了解并能够获取设备的IP地址及网关信息对于开发网络应用尤其关键。QT是一个强大的跨平台应用程序开发框架,它支持C++语言,同时也提供了丰富的库来处理网络相关的任务。在这...

Global site tag (gtag.js) - Google Analytics