脚本宝典收集整理的这篇文章主要介绍了分享代码片段:java中准确地获取本机ip地址(列表)的方法,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
原文链接:https://gist.github.com/pfmiles/9f7273b12b4b486e2e9c
package test; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumeration; import java.util.HashSet; import java.util.Iterator; import java.util.Set; /** * 获取本地ip的工具 * * @author pf-miles * @since 2014-11-25 */ public class LocalIpAddressUtil { /** * 获取本地ip地址,有可能会有多个地址, 若有多个网卡则会搜集多个网卡的ip地址 */ public static Set<InetAddress> resolveLocalAddresses() { Set<InetAddress> addrs = new HashSet<InetAddress>(); Enumeration<NetworkInterface> ns = null; try { ns = NetworkInterface.getNetworkInterfaces(); } catch (SocketException e) { // ignored... } while (ns != null && ns.hasMoreElements()) { NetworkInterface n = ns.nextElement(); Enumeration<InetAddress> is = n.getInetAddresses(); while (is.hasMoreElements()) { InetAddress i = is.nextElement(); if (!i.isLoopbackAddress() && !i.isLinkLocalAddress() && !i.isMulticastAddress() && !isSpecialIp(i.getHostAddress())) addrs.add(i); } } return addrs; } public static Set<String> resolveLocalIps() { Set<InetAddress> addrs = resolveLocalAddresses(); Set<String> ret = new HashSet<String>(); for (InetAddress addr : addrs) ret.add(addr.getHostAddress()); return ret; } private static boolean isSpecialIp(String ip) { if (ip.contains(":")) return true; if (ip.startsWith("127.")) return true; if (ip.startsWith("169.254.")) return true; if (ip.equals("255.255.255.255")) return true; return false; } }
以上是脚本宝典为你收集整理的分享代码片段:java中准确地获取本机ip地址(列表)的方法全部内容,希望文章能够帮你解决分享代码片段:java中准确地获取本机ip地址(列表)的方法所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。