Ejemplo n.º 1
0
        public void ParseAddress()
        {
            var addrs = NetUri.ParseAddress("newlifex.com");

            Assert.NotNull(addrs);
            //Assert.Equal(3, addrs.Length);
            Assert.True(addrs.Length > 0);
            Assert.Contains(addrs, e => e.AddressFamily == AddressFamily.InterNetwork);
            if (addrs.Length > 1)
            {
                Assert.Contains(addrs, e => e.AddressFamily == AddressFamily.InterNetworkV6);
            }

            var addrs2 = NetUri.ParseAddress("240e:e0:9930:2100:9914:b410:c7d8:c0a6");

            Assert.NotNull(addrs2);
            Assert.Single(addrs2);
            Assert.Equal("240e:e0:9930:2100:9914:b410:c7d8:c0a6", addrs2[0] + "");

            var uri = new NetUri("https://newlifex.com");

            Assert.Equal("newlifex.com", uri.Host);
            var addrs3 = uri.GetAddresses();

            //Assert.Equal(3, addrs3.Length);
            Assert.True(addrs.Length > 0);
        }
Ejemplo n.º 2
0
        /// <summary>分析地址,根据IP或者域名得到IP地址,缓存60秒,异步更新</summary>
        /// <param name="hostname"></param>
        /// <returns></returns>
        public static IPAddress ParseAddress(this String hostname)
        {
            if (hostname.IsNullOrEmpty())
            {
                return(null);
            }

            if (_dnsCache.FindMethod == null)
            {
                _dnsCache.FindMethod = s => NetUri.ParseAddress(s)?.FirstOrDefault();
            }

            //return _dnsCache.GetItem(hostname, NetUri.ParseAddress);
            return(_dnsCache[hostname]);
        }
Ejemplo n.º 3
0
        /// <summary>分析地址,根据IP或者域名得到IP地址,缓存60秒,异步更新</summary>
        /// <param name="hostname"></param>
        /// <returns></returns>
        public static IPAddress ParseAddress(this String hostname)
        {
            if (hostname.IsNullOrEmpty())
            {
                return(null);
            }

            var key = $"NetHelper:ParseAddress:{hostname}";

            if (_Cache.TryGetValue <IPAddress>(key, out var address))
            {
                return(address);
            }

            address = NetUri.ParseAddress(hostname)?.FirstOrDefault();

            _Cache.Set(key, address, 60);

            return(address);
        }