protected List<ProviderInfo> directUrl2IpUrl(ProviderInfo providerInfo, List<ProviderInfo> originList) {
        List<ProviderInfo> result = new ArrayList<>();
        try {
            String originHost = providerInfo.getHost();
            String originUrl = providerInfo.getOriginUrl();
            InetAddress[] addresses = InetAddress.getAllByName(originHost);
            if (addresses != null && addresses.length > 0) {
                Map<ProviderInfo, ProviderInfo> originMap = originList == null ? EMPTY_MAP : originList.stream().collect(Collectors.toMap(Function.identity(), Function.identity()));
                String firstHost = addresses[0].getHostAddress();
                if (firstHost == null || firstHost.equals(providerInfo.getHost())) {
                    addProviderInfo(result, originMap, providerInfo);
                    return result;
                } else if (StringUtils.isNotBlank(originUrl)) {
                    for (InetAddress address : addresses) {
                        String newHost = address.getHostAddress();
                        ProviderInfo tmp = providerInfo.clone();
                        String newUrl = originUrl.replace(originHost, newHost);
                        tmp.setOriginUrl(newUrl);
                        tmp.setHost(newHost);
                        addProviderInfo(result, originMap, tmp);
                    }
                    return result;
                }
            }
        } catch (Exception e) {
            LOGGER.error("directUrl2IpUrl error", e);
        }

        List<ProviderInfo> providerInfos = new ArrayList<>();
        providerInfos.add(providerInfo);
        return providerInfos;

    }
@Test
    public void testDirectUrl2IpUrl() {
        ProviderInfo providerInfo = ProviderHelper.toProviderInfo("bolt://alipay.com:12200");
        List<ProviderInfo> providerInfos = domainRegistry.directUrl2IpUrl(providerInfo, null);
        assertTrue(providerInfos.size() > 0);
        String host = providerInfos.get(0).getHost();
        assertNotEquals("alipay.com", host);
        assertFalse(DomainRegistryHelper.isDomain(host));

        ProviderInfo notExist = ProviderHelper.toProviderInfo("bolt://notexist:12200");
        providerInfos = domainRegistry.directUrl2IpUrl(notExist, null);
        assertEquals(1, providerInfos.size());
        host = providerInfos.get(0).getHost();
        assertEquals("notexist", host);

        ProviderInfo ipProviderInfo = ProviderHelper.toProviderInfo("bolt://127.0.0.1:12200");
        providerInfos = domainRegistry.directUrl2IpUrl(ipProviderInfo, null);
        assertEquals(1, providerInfos.size());
        host = providerInfos.get(0).getHost();
        assertEquals("127.0.0.1", host);
    }