`

获取IP地址

    博客分类:
  • java
 
阅读更多
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;

public class IPUtils {

	static final Logger logger = LoggerFactory.getLogger(IPUtils.class);

	private static String localAddress = null;

	/**
	 * <pre>
	 * 获取本机IPV4地址
	 * </pre>
	 *
	 * @return 如果无法获取 IP ips size为0
	 * @throws SocketException
	 */
	public static List<String> getIpAddress() {

		List<String> ips = new ArrayList<String>();
		try {
			Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
			while (interfaces.hasMoreElements()) {
				NetworkInterface networkInterface = interfaces.nextElement();
				if (networkInterface.isLoopback() || networkInterface.isVirtual() || !networkInterface.isUp()) {
					continue;
				}

				Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
				while (addresses.hasMoreElements()) {
					InetAddress ipv4 = addresses.nextElement();
					if (ipv4 instanceof Inet4Address) {
						ips.add(ipv4.toString().replace("/", ""));
					}
				}
			}
		} catch (Exception e) {
			logger.error("Get local IP error|{}", e.getMessage(), e);
		}

		logger.info("server ip|{}", ips);
		return ips;

	}

	public static String getLocalAddress() {
		if (!StringUtils.isEmpty(localAddress)) {
			return localAddress;
		}

		List<String> ips = getIpAddress();
		if (CollectionUtils.isEmpty(ips)) {
			throw new RuntimeException("localAddress no found!");
		}

		return localAddress = ips.get(0);
	}

}
分享到:
评论

相关推荐

    pb获取ip地址/mac地址

    标题中的"pb获取ip地址/mac地址"指的是在PowerBuilder(简称pb)环境下获取计算机的IP地址和MAC地址。PowerBuilder是一种流行的.NET和Java应用程序开发工具,尤其适合于创建数据库驱动的应用程序。在这个场景中,...

    java获取ip地址

    ### Java获取IP地址知识点解析 在本篇文章中,我们将深入探讨如何使用Java语言来获取IP地址。这是一项在网络编程中非常基础且重要的技能,能够帮助开发者了解客户端或服务器的网络位置信息。以下是对给定文件中的...

    故障处理-用户无法获取IP地址.pdf

    在处理网络故障时,用户无法获取IP地址是一个常见问题,尤其涉及到DHCP(Dynamic Host Configuration Protocol)客户端无法从DHCP服务器获取IP地址的情况。DHCP协议使得网络设备能够动态地从服务器获取IP地址配置...

    非request方式获取IP地址

    ### 非request方式获取IP地址 #### 1. 方法概述 本示例中的`getIp()`方法采用Java标准库中的`java.net.InetAddress`类来获取本地主机的IP地址。这种方法避免了使用HTTP请求或套接字连接所带来的复杂性,提供了一种...

    PB11.5获取IP地址及主机名

    在PowerBuilder 11.5(PB11.5)中获取IP地址和主机名是应用程序与网络通信的基础。这通常涉及到系统编程和网络API的使用。以下是对这个主题的详细解释。 首先,我们需要理解IP地址和主机名的概念。IP地址(Internet...

    idea,java获取ip地址

    2. **获取IP地址**:`HttpServletRequest`对象有一个`getRemoteAddr()`方法,它返回客户端的IP地址。然而,如果应用运行在反向代理服务器(如Nginx)后,这个方法可能会返回代理服务器的IP。因此,我们需要检查`X-...

    自动获取ip地址的BAT批处理

    本文将深入探讨标题为“自动获取ip地址的BAT批处理”的主题,以及如何利用批处理脚本来实现这个功能。 批处理文件通常使用扩展名为`.bat`,它包含了Windows操作系统下的DOS命令。自动获取IP地址的批处理脚本主要...

    ASP.NET 获取IP地址

    ### ASP.NET中获取IP地址及地理位置的详细解析 在当今互联网时代,获取用户IP地址及其地理位置成为许多应用程序的重要功能之一,特别是在网络安全、数据分析、个性化服务等领域。本文将深入探讨如何在ASP.NET应用中...

    C++获取IP地址

    在MFC中,我们可以创建一个对话框类(CDialog-derived class),并在其中添加按钮或控件用于触发获取IP地址的操作。以下是一个简单的步骤概述: 1. **设置项目**: 创建一个新的MFC对话框应用程序,选择“MFC ...

    php获取IP地址类库

    3. **注意事项**:解释在某些网络环境下(如NAT、代理服务器)获取IP地址的复杂性,以及如何处理这些情况。 4. **兼容性**:列出支持的PHP版本和其他依赖项,以及可能的环境限制。 5. **许可证信息**:提供类库的...

    西门子200Smart怎么获取IP地址和设置IP地址[归纳].pdf

    "西门子200Smart获取IP地址和设置IP地址的相关知识点" 获取IP地址和设置IP地址的重要性 在工业自动化领域,获取IP地址和设置IP地址是非常重要的步骤,它们可以确保PLC(Programmable Logic Controller)能够正确地...

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

    在Unix-like系统中,可以使用`getifaddrs()`函数来遍历所有网络接口,并通过`ifa_addr`字段获取IP地址。在Windows中,可以使用`GetAdaptersAddresses()`函数,同样通过遍历结果来获取IP地址。IP地址通常有IPv4和...

    通过计算机获取IP地址

    注意,获取IP地址时可能需要管理员权限,因为访问网络信息可能受到操作系统安全策略的限制。此外,如果计算机连接了多个网络(如有线和无线网络),那么可能会得到多个IP地址。 总结来说,通过C#编程,我们可以利用...

    C++获取IP地址代码

    4. **提取IP地址**:从`hostEntry`或`addrList`结构中,可以获取IP地址。如果是`gethostbyname()`,可以从`hostEntry-&gt;h_addr_list`获取;如果是`getaddrinfo()`,则遍历`addrList`,从`ai_addr`字段提取。 ```cpp ...

    获取IP地址及主机名

    总之,获取IP地址和主机名是网络通信的基础操作,无论是开发、运维还是日常使用,都经常需要用到。通过了解并熟练掌握这些方法,可以更好地理解和管理网络连接。同时,公网IP和内网IP的区分对于理解网络架构和安全也...

    LabVIEW获取IP地址

    LabVIEW自动检测获取本机IP地址。 项目可直接运行~

    获取Ip地址代码

    在IT行业中,获取IP地址是一项基础且重要的任务,特别是在网络编程和服务器开发中。IP地址是互联网协议(IP)中的一个关键元素,用于唯一标识网络上的设备。在本文中,我们将详细探讨如何在不同的编程语言中获取IP...

    获取IP地址,MAC地址

    本项目“获取IP地址,MAC地址”利用MFC和`netapi32.lib`库来实现获取网络适配器的IP和MAC信息。下面我们将详细探讨这个过程中的关键知识点。 首先,我们需要了解`netapi32.lib`库。这是一个Windows API库,提供了对...

    JS获取ip地址归属地

    JS 获取 IP 地址归属地 在网络开发中,获取用户的 IP 地址归属地是非常有用的功能,例如在电商平台中可以根据用户的 IP 地址归属地进行物流信息的显示和管理。在这篇文章中,我们将使用 JS 调用第三方 API 获取 IP ...

Global site tag (gtag.js) - Google Analytics