public static bool IsLoopBack(string ip)
        {
            switch (SocksUtilities.GetHostNameType(ip))
            {
            case EndPointType.IPv4:
                return(IsLoopBackForIPv4(ip));

            case EndPointType.IPv6:
                return(IsLoopBackForIPv6(ip));
            }
            throw new NotSupportedException();
        }
Ejemplo n.º 2
0
        private async Task <SocksAddress> ResolveHostName(SocksAddress address)
        {
            if (address.HostNameType != EndPointType.HostName)
            {
                return(address);
            }

            var supportLevel = (AddressCompatibility & AddressCompatibility.SupportsIPv6) == AddressCompatibility.SupportsIPv6
                ? SocksUtilities.IPv4SupportLevel.NoPreference
                : SocksUtilities.IPv4SupportLevel.RequiresIPv4;

            // Try resolve host name
            var resolvedHost = await SocksUtilities.ResolveHost(address.Host, supportLevel);

            if (string.IsNullOrEmpty(resolvedHost))
            {
                return(null);
            }
            return(new SocksAddress(resolvedHost, address.Port));
        }
 public SocksAddress(string host, int port)
     : this(SocksUtilities.GetHostNameType(host), host, port)
 {
 }