Usa Shifter con C# / .NET
Integra los proxies residenciales e ISP de Shifter en cualquier proyecto .NET (HttpClient, RestSharp, Flurl, Selenium y Playwright) sin modificar tu lógica de negocio.
Inicio rápido
Instalar
dotnet add package System.Net.Http Uso básico
using System.Net;
using System.Net.Http;
var proxy = new WebProxy("http://p.shifter.io:443") {
Credentials = new NetworkCredential(
"customer-USERNAME-country-us-sid-123ABC",
"PASSWORD"
)
};
var handler = new HttpClientHandler { Proxy = proxy, UseProxy = true };
using var client = new HttpClient(handler) {
Timeout = TimeSpan.FromSeconds(30)
};
var json = await client.GetStringAsync("https://ipinfo.io/json");
Console.WriteLine(json);
// {"ip": "154.16.xxx.xxx", "city": "New York", "country": "US", ...} Características
Ejemplos
HttpClient con sesión persistente
El cliente HTTP estándar de .NET. Configúralo una vez y compártelo en toda la aplicación mediante IHttpClientFactory o un singleton: la misma IP residencial se reutilizará en cada solicitud con un `sid` coincidente.
using System.Net;
using System.Net.Http;
static HttpClient ShifterClient(string country, string city, string sid)
{
var proxy = new WebProxy("http://p.shifter.io:443") {
Credentials = new NetworkCredential(
$"customer-USERNAME-country-{country}-city-{city}-sid-{sid}-ttl-300",
"PASSWORD"
)
};
var handler = new HttpClientHandler {
Proxy = proxy,
UseProxy = true,
AutomaticDecompression = DecompressionMethods.All
};
var client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(30) };
client.DefaultRequestHeaders.Add("User-Agent",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36");
return client;
}
var c = ShifterClient("uk", "london", Guid.NewGuid().ToString("N")[..8]);
foreach (var path in new[] { "/login", "/dashboard", "/orders" })
{
var resp = await c.GetAsync($"https://example.co.uk{path}");
Console.WriteLine($"{path} {(int)resp.StatusCode} {(await resp.Content.ReadAsStringAsync()).Length}");
} RestSharp
RestSharp envuelve HttpClient con un constructor fluido, deserialización automática de JSON y políticas de reintento. Configura el proxy en RestClientOptions.
using RestSharp;
using System.Net;
public record Product(int Id, string Name, decimal Price);
var options = new RestClientOptions("https://api.example.de") {
Proxy = new WebProxy("http://p.shifter.io:443") {
Credentials = new NetworkCredential(
"customer-USERNAME-country-de-sid-456DEF",
"PASSWORD"
)
},
Timeout = TimeSpan.FromSeconds(30)
};
var client = new RestClient(options);
var request = new RestRequest("/products");
request.AddHeader("User-Agent",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36");
var products = await client.GetAsync<List<Product>>(request);
foreach (var p in products!)
Console.WriteLine($"{p.Id} {p.Name} — {p.Price:C}"); Selenium WebDriver (.NET)
Controla una instancia real de Chrome, Edge o Firefox a través de Shifter para objetivos con JavaScript. Combínalo con la lista blanca de IPs de Shifter para autenticación sin interfaz gráfica.
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Proxy = OpenQA.Selenium.Proxy;
var seleniumProxy = new Proxy {
HttpProxy = "p.shifter.io:443",
SslProxy = "p.shifter.io:443"
};
var options = new ChromeOptions { Proxy = seleniumProxy };
options.AddArguments("--headless=new",
"--user-agent=Mozilla/5.0 (Linux) AppleWebKit/537.36");
// For username-password auth in headless mode, pair with Shifter's
// IP whitelist or use selenium-wire — Chrome ignores credentials in
// headless mode without a sidecar extension.
using var driver = new ChromeDriver(options);
driver.Navigate().GoToUrl("https://example.com");
var title = driver.Title;
var html = driver.PageSource;
Console.WriteLine($"{title} — {html.Length} bytes"); Playwright para .NET
Microsoft Playwright controla Chromium, Firefox y WebKit desde C#. Configura el proxy en las opciones de lanzamiento: credenciales incluidas, sin necesidad de extensión.
using Microsoft.Playwright;
using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Chromium.LaunchAsync(new() {
Proxy = new() {
Server = "http://p.shifter.io:443",
Username = "customer-USERNAME-country-fr-city-paris-sid-789GHI",
Password = "PASSWORD"
}
});
var context = await browser.NewContextAsync(new() {
UserAgent = "Mozilla/5.0 (Windows) AppleWebKit/537.36"
});
var page = await context.NewPageAsync();
await page.GotoAsync("https://example.fr");
var headlines = await page.Locator(".headline").AllTextContentsAsync();
foreach (var h in headlines)
Console.WriteLine(h); Preguntas frecuentes
Preguntas frecuentes sobre el uso de Shifter con C# / .NET.
Crea un WebProxy apuntando a `http://p.shifter.io:443` con Credentials configurado como un NetworkCredential que contenga tu nombre de usuario y contraseña de Shifter. Pásalo a un HttpClientHandler con UseProxy = true y proporciona ese handler a un nuevo HttpClient. El mismo cliente puede compartirse de forma segura en toda la aplicación a través de IHttpClientFactory.
Establece la propiedad Proxy en RestClientOptions con un WebProxy y NetworkCredential. RestSharp envuelve el HttpClient subyacente: cada solicitud que realice el RestClient se enrutará a través de Shifter. Compatible con RestSharp 110+.
Sí. Establece el campo Proxy en BrowserTypeLaunchOptions de Playwright con Server, Username y Password. La misma configuración funciona para Chromium, Firefox y WebKit. No se requiere extensión: las credenciales se pasan de forma directa.
Añade un ID de sesión al nombre de usuario del proxy, por ejemplo `customer-USERNAME-country-us-sid-123ABC`. Cada solicitud .NET que se autentique con el mismo sid reutilizará la misma IP residencial. Añade `ttl-N` para fijar esa IP durante un máximo de N segundos.
Sí. Registre un HttpClient con nombre mediante IHttpClientFactory en Program.cs, configure su controlador para usar un WebProxy de Shifter e inyecte IHttpClientFactory.CreateClient("shifter") donde lo necesite. Funciona en MVC, Minimal APIs y Blazor.
No se necesita ningún paquete NuGet. Shifter utiliza HTTP / SOCKS5 estándar: apunta tu HttpClient existente a `p.shifter.io:443`. Esto mantiene tu archivo de proyecto limpio y funciona en .NET Framework, .NET Core y .NET 5+.
Empieza a usar Shifter con C# / .NET
Añade los más de 205M de proxies residenciales y de ISP de Shifter a tu stack .NET en menos de 5 minutos. Compatible con HttpClient, RestSharp, Selenium y Playwright.