content: package com.ctrip.framework.foundation.internals.provider;
  
  import com.ctrip.framework.foundation.internals.NetworkInterfaceManager;
  import com.ctrip.framework.foundation.spi.provider.NetworkProvider;
  import com.ctrip.framework.foundation.spi.provider.Provider;
  
  public class DefaultNetworkProvider implements NetworkProvider {
    @Override
    public String getProperty(String name, String defaultValue) {
      if ("host.address".equalsIgnoreCase(name)) {
        String val = getHostAddress();
        return val == null ? defaultValue : val;
      } else if ("host.name".equalsIgnoreCase(name)) {
        String val = getHostName();
        return val == null ? defaultValue : val;
      } else {
        return defaultValue;
      }
    }
  
    @Override
    public void initialize() {
  
    }
  
    @Override
    public String getHostAddress() {
      return NetworkInterfaceManager.INSTANCE.getLocalHostAddress();
    }
  
    @Override
    public String getHostName() {
      return NetworkInterfaceManager.INSTANCE.getLocalHostName();
    }
  
    @Override
    public Class<? extends Provider> getType() {
      return NetworkProvider.class;
    }
  
    @Override
    public String toString() {
      return "hostName [" + getHostName() + "] hostIP [" + getHostAddress() + "] (DefaultNetworkProvider)";
    }
  }
  