Java获取Windows或Linux下的IP地址
Java获取Linux或Windows下的IP地址,详情如下
import lombok.extern.slf4j.Slf4j; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.net.UnknownHostException; import java.util.Enumeration; @Slf4j public class IPUtils { public static String localIp = ""; static { try { localIp = getLocalIp(); }catch (Exception ex) { log.error("获取IP异常", ex); } } /** * 获取本机IP * @return * @throws UnknownHostException */ public static String getLocalIp() throws UnknownHostException { if (isWindowsOS()) { return InetAddress.getLocalHost().getHostAddress(); }else { return getLinuxLocalIp(); } } /** * 获取Linux下的IP * @return */ private static String getLinuxLocalIp() { String ip = ""; try { for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); String name = intf.getName(); if (!name.contains("docker") && !name.contains("lo")) { for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) { InetAddress inetAddress = enumIpAddr.nextElement(); if (!inetAddress.isLinkLocalAddress()) { String ipAddress = inetAddress.getHostAddress(); if (!ipAddress.contains("::") && !ipAddress.contains("0:0:") && !ipAddress.contains("fe80")) { ip = ipAddress; } } } } } } catch (SocketException ex) { log.error("获取Linux下的IP异常", ex); ip = "127.0.0.1"; } log.info("Linux IP = {}", ip); return ip; } /** * 是否为Windows操作系统 * @return */ private static boolean isWindowsOS() { boolean isWindowOS = false; String osName = System.getProperty("os.name"); if (osName.toLowerCase().indexOf("windows") > -1) { isWindowOS = true; } return isWindowOS; } public static void main(String[] args) throws UnknownHostException { String localIp = getLocalIp(); System.out.println(localIp); } }
分类:
Java / Java基础
, 网络基础
标签:
Java基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)