private async Task Initialize(Socks5Options Options) { Socket = new Socket(Options.SocketType, Options.ProtocolType); Socket = Options.Authentication == Authentication.NoAuthentication ? await Hello(Options.IPEndPoint) : await Hello(Options.IPEndPoint, Options.Username, Options.Password); Initialized = true; }
public async Task Proxy() { var Socks5Options = new Socks5Options(); var Socks5WebProxyOptions = new Socks5WebProxyOptions(); var Socks5OptionsMonitor = Mock.Of <IOptionsMonitor <Socks5Options> >(Options => Options.CurrentValue == Socks5Options); var Socks5WebProxyOptionsMonitor = Mock.Of <IOptionsMonitor <Socks5WebProxyOptions> >(Options => Options.CurrentValue == Socks5WebProxyOptions); var Proxy = new Socks5WebProxy(Socks5WebProxyOptionsMonitor, Socks5OptionsMonitor); await Proxy.StartAsync(CancellationToken.None); var Client = new WebClient { Proxy = new WebProxy(new Uri("http://127.0.0.1:8000")) }; var TorIP = await Client.DownloadStringTaskAsync("https://httpbin.org/ip"); var Cloudflare = await Client.DownloadStringTaskAsync("http://dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion"); }