最近重装了系统（Linux系统）后，发现dubbo在注册中心注册的地址为180.168.41.175，介于之前组内其他人也出现过dubbo所获取的IP为180.168.41.175的问题，于是翻了翻源码，找到了获得IP的出处：InetAddress.getLocalHost()。而Java的这个方法依赖于本地的hostname和hosts文件。而我的系统默认的hosts文件中并不存在hostname所对应的记录，结果InetAddress.getLocalHost()就解析成了180.168.41.175。
我看到QA(http://dubbo.io/faq.html) 中有条和我的情况类似的（第17条，说是Dubbo1.0.7以上版本不会出现这个问题，但是我这里出现了，虽然不是127.0.0.1）。
我有个不成熟的小建议，可否优化一下IP获取的方式，让其更加精准；或则增加一个明显一点的配置说明。毕竟不同的Linux发行版有不同的hosts配置，出现这种问题让新手很是蒙蔽。。
望大神回复。
}
        map.put(Constants.REGISTER_IP_KEY, hostToRegistry);
        appendParameters(map, monitor);
        appendParameters(map, application);
        String address = monitor.getAddress();
        String sysaddress = System.getProperty("dubbo.monitor.address");
        if (sysaddress != null && sysaddress.length() > 0) {
            address = sysaddress;
        }
        if (ConfigUtils.isNotEmpty(address)) {
            if (!map.containsKey(Constants.PROTOCOL_KEY)) {
                if (getExtensionLoader(MonitorFactory.class).hasExtension("logstat")) {
                    map.put(Constants.PROTOCOL_KEY, "logstat");
                } else {
                    map.put(Constants.PROTOCOL_KEY, Constants.DUBBO_PROTOCOL);
                }
            }
            return UrlUtils.parseURL(address, map);
        } else if (Constants.REGISTRY_PROTOCOL.equals(monitor.getProtocol()) && registryURL != null) {
          return registryURL.setProtocol(Constants.DUBBO_PROTOCOL).addParameter(Constants.PROTOCOL_KEY, Constants.REGISTRY_PROTOCOL).addParameterAndEncoded(Constants.REFER_KEY, StringUtils.toQueryString(map));
        }
        return null;
    }
    static void appendRuntimeParameters(Map<String, String> map) {
        map.put(Constants.DUBBO_VERSION_KEY, Version.getProtocolVersion());
        map.put(Constants.RELEASE_KEY, Version.getVersion());
        map.put(Constants.TIMESTAMP_KEY, String.valueOf(System.currentTimeMillis()));
        if (ConfigUtils.getPid() > 0) {
            map.put(Constants.PID_KEY, String.valueOf(ConfigUtils.getPid()));
        }