Esempio n. 1
0
 public Socks5ClientRequestReply Bind(Socks5AddressType addressType, ushort preferPort = 0)
 {
     if (addressType != Socks5AddressType.IPv4 && addressType != Socks5AddressType.IPv6)
     {
         throw new Socks5Exception("You can request only IPv4/IPv6 binding, not hostname");
     }
     if (!_established)
     {
         ConnectCore();
     }
     return(RemoteBind(addressType, preferPort));
 }
Esempio n. 2
0
        protected Socks5ClientRequestReply RemoteBind(Socks5AddressType addressType, ushort preferPort)
        {
            if (addressType != Socks5AddressType.IPv4 && addressType != Socks5AddressType.IPv6)
            {
                throw new Socks5Exception("You can request only IPv4/IPv6 binding, not hostname");
            }
            Socks5ClientRequest request = new Socks5ClientRequest {
                Command         = Socks5Command.TCPBind,
                AddressType     = addressType,
                DestinationPort = preferPort
            };

            if (addressType == Socks5AddressType.IPv4)
            {
                request.DestinationAddress = "0.0.0.0";
            }
            else if (addressType == Socks5AddressType.IPv6)
            {
                request.DestinationAddress = "::";
            }

            return(RemoteBindCore(request));
        }