本文共 1700 字,大约阅读时间需要 5 分钟。
以下为windows下使用但linux下不能使用:
NetworkInterface netInterface = NetworkInterface.getByInetAddress(InetAddress.getLocalHost()); String broadCastIp = null; if (!netInterface.isLoopback()&& netInterface.isUp()) { ListinterfaceAddresses = netInterface.getInterfaceAddresses(); for (InterfaceAddress interfaceAddress : interfaceAddresses) { //只有 IPv4 网络具有广播地址,因此对于 IPv6 网络将返回 null。 if(interfaceAddress.getBroadcast()!= null){ broadCastIp =interfaceAddress.getBroadcast().getHostAddress(); } } }
以下实现不管是windows还是linux都可以用:
/** * 获取本机广播地址,并自动区分Windows还是Linux操作系统 * @return String */ public static String getLocalBroadCast(){ String broadCastIp = null; try { Enumeration netInterfaces = (Enumeration ) NetworkInterface.getNetworkInterfaces(); while (netInterfaces.hasMoreElements()) { NetworkInterface netInterface = (NetworkInterface) netInterfaces.nextElement(); if (!netInterface.isLoopback()&& netInterface.isUp()) { ListinterfaceAddresses = netInterface.getInterfaceAddresses(); for (InterfaceAddress interfaceAddress : interfaceAddresses) { //只有 IPv4 网络具有广播地址,因此对于 IPv6 网络将返回 null。 if(interfaceAddress.getBroadcast()!= null){ broadCastIp =interfaceAddress.getBroadcast().getHostAddress(); } } } } }catch (Exception e) { e.printStackTrace(); } return broadCastIp; }
转载地址:http://bfmgb.baihongyu.com/