This library allows you to connect over Socks5 proxies when using the .NET HttpClient
.
It implements the IWebProxy
interface and can therefore be used with all libraries
that support HTTP/HTTPS proxies.
using MihaZupan;
var proxy = new HttpToSocks5Proxy("127.0.0.1", 1080);
var handler = new HttpClientHandler { Proxy = proxy };
HttpClient httpClient = new HttpClient(handler, true);
var result = await httpClient.SendAsync(
new HttpRequestMessage(HttpMethod.Get, "https://httpbin.org/ip"));
Console.WriteLine("HTTPS GET: " + await result.Content.ReadAsStringAsync());
The library was originally designed to fight censorship attempts against Telegram.
Using it with the Telegram Bot Library is therefore a breeze.
using MihaZupan;
var proxy = new HttpToSocks5Proxy("my-socks-server.com", 1080);
// Or if the proxy server requires credentials (gssapi is not supported):
new HttpToSocks5Proxy("my-socks-server.com", 1080, "username", "password");
// Some proxies limit target connections to a single IP address
// If that is the case you have to resolve hostnames locally
proxy.ResolveHostnamesLocally = true;
TelegramBotClient Bot = new TelegramBotClient("API Token", proxy);
Worry not, you can now chain SOCKS proxies with this library
var proxy = new HttpToSocks5Proxy(new[] {
new ProxyInfo("tor-proxy.com", 1080),
new ProxyInfo("random-socks.com", 1090),
new ProxyInfo("tor-proxy.com", 1080)
});
Install as a NuGet package:
Package manager:
Install-Package HttpToSocks5Proxy