java获取本地IP
@Slf4j
public class IPUtils {
private static String ipDefault=null;
public static String getIP(){
if(ipDefault!=null){
return ipDefault;
}
try{
Enumeration<NetworkInterface> allNetInterfaces = NetworkInterface.getNetworkInterfaces();
while (allNetInterfaces.hasMoreElements()){
NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement();
Enumeration<InetAddress> addresses = netInterface.getInetAddresses();
while (addresses.hasMoreElements()){
InetAddress ip = (InetAddress) addresses.nextElement();
if (ip != null
&& ip instanceof Inet4Address
&& !ip.isLoopbackAddress() //loopback地址即本机地址,IPv4的loopback范围是127.0.0.0 ~ 127.255.255.255
&& ip.getHostAddress().indexOf(":")==-1){
log.info("本机的IP = ",ip.getHostAddress());
ipDefault=ip.getHostAddress();
return ipDefault;
}
}
}
}catch(Exception e){
log.error("获取linux地址失败{}{}",e);
}
return null;
}
}