content: /*
   * Copyright (C) 2016-2023 ActionTech.
   * License: http://www.gnu.org/licenses/gpl.html GPL version 2 or higher.
   */
  
  package com.actiontech.dble.util;
  
  import java.net.Inet4Address;
  import java.net.InetAddress;
  import java.net.NetworkInterface;
  import java.util.Enumeration;
  
  public final class NetUtil {
      private NetUtil() {
      }
  
      public static String getHostIp() {
          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() &&
                              ip.getHostAddress().indexOf(":") == -1) {
                          return ip.getHostAddress();
                      }
                  }
              }
          } catch (Exception e) {
              return null;
          }
          return null;
      }
  }
  