> For the complete documentation index, see [llms.txt](https://developers.oxylabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.oxylabs.io/products/es/proxies/residential-proxies/session-control.md).

# Control de sesión y rotación de IP

Aprende a gestionar las sesiones de Residential Proxies para mantener la misma dirección IP en varias solicitudes y controlar la duración de la sesión y la rotación de IP.

Oxylabs Residential Proxies se rotan automáticamente con cada solicitud de forma predeterminada. Para mantener la misma dirección IP en solicitudes secuenciales, configura parámetros de sesión persistente en tu cadena de nombre de usuario o conéctate mediante puertos de entrada de proxy persistente.

<table><thead><tr><th width="156">Método</th><th width="132">Parámetro</th><th>Descripción</th></tr></thead><tbody><tr><td><a href="#default-sticky-sessions-sessid"><strong>Sesión persistente</strong></a></td><td><code>sessid</code></td><td>Se rota automáticamente a una nueva IP para mantener la sesión activa. 10 minutos (predeterminado).</td></tr><tr><td><a href="#extend-session-duration-sesstime"><strong>Duración de la sesión</strong></a></td><td><code>sesstime</code></td><td>Extiende <code>sessid</code> la duración. La sesión termina una vez que expira el temporizador. Hasta 1440 min (24 hrs)</td></tr><tr><td><a href="#single-ip-strict-session-binding-sessid_oneip"><strong>Vinculación a una sola IP</strong></a></td><td><code>sessid_oneip</code></td><td>Se vincula estrictamente a un único nodo de salida. Falla con HTTP <code>502</code> si la IP cae. Hasta 1440 min (24 hrs)</td></tr><tr><td><a href="#sticky-proxy-entry-nodes-port-range"><strong>Puertos persistentes</strong></a></td><td>Rango de puertos</td><td>Persistencia basada en puertos (los puertos <code>10001–49999</code>) no requiere parámetros basados en nombre de usuario. Hasta 10 minutos.</td></tr></tbody></table>

## Sesiones persistentes predeterminadas (`sessid`)

La `sessid` el parámetro enruta múltiples solicitudes a través de la misma dirección IP mientras la IP esté en línea. Añade `sessid` después de tu `nombre de usuario` con una cadena alfanumérica aleatoria (p. ej., `sessid-abcd1234`):

```
customer-USERNAME-cc-DE-sessid-abcd1234:PASSWORD
```

De forma predeterminada, una sesión dura 10 minutos o termina después de 60 segundos sin ninguna solicitud, lo que ocurra primero. Cuando eso sucede, se asigna automáticamente una nueva dirección IP para que tus solicitudes continúen sin interrupciones. Para cambiar la duración de la sesión, consulta [Extender la duración de la sesión](#extend-session-duration-sesstime).

#### Ejemplos de código

{% tabs %}
{% tab title="cURL" %}

```shell
curl -x pr.oxylabs.io:7777 -U "customer-USERNAME-cc-DE-sessid-abcd1234:PASSWORD" https://ip.oxylabs.io/location
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$country = 'DE';
$session = mt_rand();
$proxy = 'pr.oxylabs.io:7777';
$query = curl_init('https://ip.oxylabs.io/location');
curl_setopt($query, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($query, CURLOPT_PROXY, "http://$proxy");
curl_setopt($query, CURLOPT_PROXYUSERPWD, "customer-$username-cc-$country-sessid-$session:$password");
$output = curl_exec($query);
curl_close($query);
if ($output)
    echo $output;
?>
```

{% endtab %}

{% tab title="Python" %}

```python
import urllib.request
import random
username = 'USERNAME'
password = 'PASSWORD'
country = 'DE'
session = random.random()
entry = ('http://customer-%s-cc-%s-sessid-%s:%s@pr.oxylabs.io:7777' %
    (username, country, session, password))
query = urllib.request.ProxyHandler({
    'http': entry,
    'https': entry,
})
execute = urllib.request.build_opener(query)
print(execute.open('https://ip.oxylabs.io/location').read())
```

{% endtab %}

{% tab title="Java" %}

```java
package example;

import java.io.*;
import java.util.Random;
import org.apache.http.HttpHost;
import org.apache.http.auth.*;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.fluent.Request;
import org.apache.http.client.methods.*;
import org.apache.http.impl.client.*;
import org.apache.http.impl.conn.BasicHttpClientConnectionManager;
import org.apache.http.util.EntityUtils;

class Client {
    public static final String username = "USERNAME";
    public static final String password = "PASSWORD";
    public String session_id = Integer.toString(new Random().nextInt(Integer.MAX_VALUE));
    public CloseableHttpClient client;

    public Client(String country) {
        String login = "customer-"+username+(country!=null ? "-cc-"+country : "")
            +"-sessid-" + session_id;
        HttpHost entry_node = new HttpHost("pr.oxylabs.io:7777");
        CredentialsProvider credentials_provider = new BasicCredentialsProvider();
        credentials_provider.setCredentials(new AuthScope(entry_node),
            new UsernamePasswordCredentials(login, password));
        client = HttpClients.custom()
            .setConnectionManager(new BasicHttpClientConnectionManager())
            .setProxy(entry_node)
            .setDefaultCredentialsProvider(credentials_provider)
            .build();
    }

    public String request(String url) throws IOException {
        HttpGet request = new HttpGet(url);
        CloseableHttpResponse response = client.execute(request);
        try {
            return EntityUtils.toString(response.getEntity());
        } finally { response.close(); }
    }

    public void close() throws IOException { client.close(); }
}

public class Example {
    public static void main(String[] args) throws IOException {
        Client client = new Client("de");
        try {
            System.out.println(client.request("https://ip.oxylabs.io/location"));
        } finally { client.close(); }
    }
}
```

{% endtab %}

{% tab title="C#" %}

```csharp
using System;
using System.Net;

class Client : WebClient
{
    public static string username = "USERNAME";
    public static string password = "PASSWORD";
    public string session_id = new Random().Next().ToString();

    public Client(string country_iso = null)
    {
        this.Proxy = new WebProxy("pr.oxylabs.io:7777");
        var login = "customer-"+username+(country_iso != null ? "-cc-"+country_iso : "")
            +"-sessid-"+session_id;
        this.Proxy.Credentials = new NetworkCredential(login, password);
    }

    protected override WebRequest GetWebRequest(Uri address)
    {
        var request = base.GetWebRequest(address) as HttpWebRequest;
        request.ConnectionGroupName = session_id;
        return request;
    }
}

class Example
{
    static void Main()
    {
        var client = new Client("de");
        Console.WriteLine(client.DownloadString("https://ip.oxylabs.io/location"));
    }
}
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
require 'uri'
require 'net/http'
require 'net/https'

entry_node = 'pr.oxylabs.io'
entry_port = '7777'
username = 'USERNAME'
password = 'PASSWORD'
session_id = Random.rand(1000000)

uri = URI.parse("https://ip.oxylabs.io/location")
headers = {
    'Accept-Encoding' => 'gzip'
}

proxy = Net::HTTP::Proxy(entry_node, entry_port, "#{username}-cc-DE-sessid-#{session_id}", password)
http = proxy.new(uri.host,uri.port)

if uri.scheme == 'https'
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE
end

req = Net::HTTP::Get.new(uri.path, headers)

result = http.start do |con|
    con.request(req)
end

puts result.body
```

{% endtab %}
{% endtabs %}

## Extender la duración de la sesión (`sesstime`)

Combina el `sesstime` parámetro con `sessid` para extender la duración de la sesión más allá del valor predeterminado de 10 minutos (o hasta 60 segundos de inactividad) hasta 1440 minutos (24 horas). Especifica la duración en minutos (p. ej., `sesstime-30` para 30 minutos):

```
customer-USERNAME-cc-DE-sessid-abcd1234-sesstime-30:PASSWORD
```

{% hint style="info" %}
**Nota:** El parámetro de tiempo de sesión no garantiza que todas tus solicitudes terminen antes de que finalice la sesión. La sesión expira una vez que se alcanza el límite de tiempo, incluso si algunas solicitudes aún están en curso.
{% endhint %}

{% hint style="warning" %}
Dado que la disponibilidad de IP de los proxies residenciales es dinámica, un nodo de salida individual puede desconectarse antes de que venza el tiempo de sesión especificado. Si un nodo de salida cae, `sessid` se rotará automáticamente a una nueva IP para completar tu solicitud.&#x20;
{% endhint %}

#### Ejemplos de código

Elegimos la misma IP alemana que en el ejemplo anterior; esta vez estamos agregando `sessid` la cadena `sesstime` y el parámetro durante 7 minutos:

{% tabs %}
{% tab title="cURL" %}

```shell
curl -x pr.oxylabs.io:7777 -U "customer-USERNAME-cc-DE-sessid-abcd1234-sesstime-7:PASSWORD" https://ip.oxylabs.io/location
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$country = 'DE';
$session = mt_rand();
$sesstime = 7;
$proxy = 'pr.oxylabs.io:7777';
$query = curl_init('https://ip.oxylabs.io/location');
curl_setopt($query, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($query, CURLOPT_PROXY, "http://$proxy");
curl_setopt($query, CURLOPT_PROXYUSERPWD, "customer-$username-cc-$country-sessid-$session-sesstime-$sesstime:$password");
$output = curl_exec($query);
curl_close($query);
if ($output)
    echo $output;
?>
```

{% endtab %}

{% tab title="Python" %}

```python
import urllib.request
import random
username = 'USERNAME'
password = 'PASSWORD'
country = 'DE'
session = random.random()
sesstime = 7
entry = ('http://customer-%s-cc-%s-sessid-%s-sesstime-%d:%s@pr.oxylabs.io:7777' %
    (username, country, city, session, sesstime, password))
query = urllib.request.ProxyHandler({
    'http': entry,
    'https': entry,
})
execute = urllib.request.build_opener(query)
print(execute.open('https://ip.oxylabs.io/location').read())
```

{% endtab %}

{% tab title="Java" %}

```java
package example;

import java.io.*;
import java.util.Random;
import org.apache.http.HttpHost;
import org.apache.http.auth.*;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.fluent.Request;
import org.apache.http.client.methods.*;
import org.apache.http.impl.client.*;
import org.apache.http.impl.conn.BasicHttpClientConnectionManager;
import org.apache.http.util.EntityUtils;

class Client {
    public static final String username = "USERNAME";
    public static final String password = "PASSWORD";
    public String session_id = Integer.toString(new Random().nextInt(Integer.MAX_VALUE));
    public String sesstime = "7";
    public CloseableHttpClient client;

    public Client(String country) {
        String login = "customer-"+username+(country_iso != null ? "-cc-"+country_iso : "")+"-sessid-"+session_id+"-sesstime-" +sesstime;
        HttpHost entry_node = new HttpHost("pr.oxylabs.io:7777");
        CredentialsProvider credentials_provider = new BasicCredentialsProvider();
        credentials_provider.setCredentials(new AuthScope(entry_node),
            new UsernamePasswordCredentials(login, password));
        client = HttpClients.custom()
            .setConnectionManager(new BasicHttpClientConnectionManager())
            .setProxy(entry_node)
            .setDefaultCredentialsProvider(credentials_provider)
            .build();
    }

    public String request(String url) throws IOException {
        HttpGet request = new HttpGet(url);
        CloseableHttpResponse response = client.execute(request);
        try {
            return EntityUtils.toString(response.getEntity());
        } finally { response.close(); }
    }

    public void close() throws IOException { client.close(); }
}

public class Example {
    public static void main(String[] args) throws IOException {
        Client client = new Client("de");
        try {
            System.out.println(client.request("https://ip.oxylabs.io/location"));
        } finally { client.close(); }
    }
}
```

{% endtab %}

{% tab title="C#" %}

```csharp
using System;
using System.Net;

class Client : WebClient
{
    public static string username = "USERNAME";
    public static string password = "PASSWORD";
    public string session_id = new Random().Next().ToString();

    public Client(string country_iso = null)
    {
        this.Proxy = new WebProxy("pr.oxylabs.io:7777");
        var login = "customer-"+username+(country_iso != null ? "-cc-"+country_iso : "")
            +"-sessid-"+session_id;
        this.Proxy.Credentials = new NetworkCredential(login, password);
    }

    protected override WebRequest GetWebRequest(Uri address)
    {
        var request = base.GetWebRequest(address) as HttpWebRequest;
        request.ConnectionGroupName = session_id;
        return request;
    }
}

class Example
{
    static void Main()
    {
        var client = new Client("de");
        Console.WriteLine(client.DownloadString("https://ip.oxylabs.io/location"));
    }
}
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
require 'uri'
require 'net/http'
require 'net/https'

entry_node = 'pr.oxylabs.io'
entry_port = '7777'
username = 'USERNAME'
password = 'PASSWORD'
session_id = Random.rand(1000000)
sesstime = 7

uri = URI.parse("https://ip.oxylabs.io/location")
headers = {
    'Accept-Encoding' => 'gzip'
}

proxy = Net::HTTP::Proxy(entry_node, entry_port, "#{username}-cc-DE-sessid-#{session_id}-sesstime-#{sesstime}", password)
http = proxy.new(uri.host,uri.port)

if uri.scheme == 'https'
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE
end

req = Net::HTTP::Get.new(uri.path, headers)

result = http.start do |con|
    con.request(req)
end

puts result.body
```

{% endtab %}
{% endtabs %}

## Vinculación de sesión a una sola IP (`sessid_oneip`)

Utilice `sessid_oneip` en lugar de `sessid` cuando tu flujo de trabajo requiere una consistencia estricta de IP y no puede tolerar la rotación de IP a mitad de sesión.&#x20;

A diferencia de las sesiones persistentes estándar, si el nodo de salida asignado se desconecta, el sistema no rotará a una nueva IP y, en su lugar, la solicitud falla con un error HTTP `502 Bad Gateway` error. Cuando ocurre un `502` error, inicia una nueva sesión usando una nueva `sessid_oneip` cadena. `sessid_oneip` puede combinarse con `sesstime` de la misma manera que `sessid`.

```
customer-USERNAME-cc-DE-sessid_oneip-qwert-sesstime-10:PASSWORD
```

#### Ejemplos de código

{% tabs %}
{% tab title="cURL" %}

```shell
curl -x pr.oxylabs.io:7777 -U "customer-USERNAME-cc-DE-sessid_oneip-abcd1234:PASSWORD" https://ip.oxylabs.io/location
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$country = 'DE';
$session = mt_rand();
$proxy = 'pr.oxylabs.io:7777';
$query = curl_init('https://ip.oxylabs.io/location');
curl_setopt($query, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($query, CURLOPT_PROXY, "http://$proxy");
curl_setopt($query, CURLOPT_PROXYUSERPWD, "customer-$username-cc-$country-sessid_oneip-$session:$password");
$output = curl_exec($query);
curl_close($query);
if ($output)
    echo $output;
?>
```

{% endtab %}

{% tab title="Python" %}

```python
import urllib.request
import random
username = 'USERNAME'
password = 'PASSWORD'
country = 'DE'
session = random.random()
entry = ('http://customer-%s-cc-%s-sessid_oneip-%s:%s@pr.oxylabs.io:7777' %
    (username, country, session, password))
query = urllib.request.ProxyHandler({
    'http': entry,
    'https': entry,
})
execute = urllib.request.build_opener(query)
print(execute.open('https://ip.oxylabs.io/location').read())
```

{% endtab %}

{% tab title="Java" %}

```java
package example;

import java.io.*;
import java.util.Random;
import org.apache.http.HttpHost;
import org.apache.http.auth.*;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.client.fluent.Request;
import org.apache.http.client.methods.*;
import org.apache.http.impl.client.*;
import org.apache.http.impl.conn.BasicHttpClientConnectionManager;
import org.apache.http.util.EntityUtils;

class Client {
    public static final String username = "USERNAME";
    public static final String password = "PASSWORD";
    public String session_id = Integer.toString(new Random().nextInt(Integer.MAX_VALUE));
    public CloseableHttpClient client;

    public Client(String country) {
        String login = "customer-"+username+(country!=null ? "-cc-"+country : "")
            +"-sessid_oneip-" + session_id;
        HttpHost entry_node = new HttpHost("pr.oxylabs.io:7777");
        CredentialsProvider credentials_provider = new BasicCredentialsProvider();
        credentials_provider.setCredentials(new AuthScope(entry_node),
            new UsernamePasswordCredentials(login, password));
        client = HttpClients.custom()
            .setConnectionManager(new BasicHttpClientConnectionManager())
            .setProxy(entry_node)
            .setDefaultCredentialsProvider(credentials_provider)
            .build();
    }

    public String request(String url) throws IOException {
        HttpGet request = new HttpGet(url);
        CloseableHttpResponse response = client.execute(request);
        try {
            return EntityUtils.toString(response.getEntity());
        } finally { response.close(); }
    }

    public void close() throws IOException { client.close(); }
}

public class Example {
    public static void main(String[] args) throws IOException {
        Client client = new Client("de");
        try {
            System.out.println(client.request("https://ip.oxylabs.io/location"));
        } finally { client.close(); }
    }
}
```

{% endtab %}

{% tab title="C#" %}

```csharp
using System;
using System.Net;

class Client : WebClient
{
    public static string username = "USERNAME";
    public static string password = "PASSWORD";
    public string session_id = new Random().Next().ToString();

    public Client(string country_iso = null)
    {
        this.Proxy = new WebProxy("pr.oxylabs.io:7777");
        var login = "customer-"+username+(country_iso != null ? "-cc-"+country_iso : "")
            +"-sessid_oneip-"+session_id;
        this.Proxy.Credentials = new NetworkCredential(login, password);
    }

    protected override WebRequest GetWebRequest(Uri address)
    {
        var request = base.GetWebRequest(address) as HttpWebRequest;
        request.ConnectionGroupName = session_id;
        return request;
    }
}

class Example
{
    static void Main()
    {
        var client = new Client("de");
        Console.WriteLine(client.DownloadString("https://ip.oxylabs.io/location"));
    }
}
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
require 'uri'
require 'net/http'
require 'net/https'

entry_node = 'pr.oxylabs.io'
entry_port = '7777'
username = 'USERNAME'
password = 'PASSWORD'
session_id = Random.rand(1000000)

uri = URI.parse("https://ip.oxylabs.io/location")
headers = {
    'Accept-Encoding' => 'gzip'
}

proxy = Net::HTTP::Proxy(entry_node, entry_port, "#{username}-cc-DE-sessid_oneip-#{session_id}", password)
http = proxy.new(uri.host,uri.port)

if uri.scheme == 'https'
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE
end

req = Net::HTTP::Get.new(uri.path, headers)

result = http.start do |con|
    con.request(req)
end

puts result.body
```

{% endtab %}
{% endtabs %}

## Nodos de entrada de proxy persistente (rango de puertos)

Conéctate a puntos de nodos de entrada específicos por país en rangos de puertos dedicados (`10001–49999`) para mantener una dirección IP durante hasta 10 minutos sin pasar `sessid` parámetros en tu cadena de nombre de usuario. Reutilizar el mismo puerto mantiene el mismo nodo de salida, mientras que cambiar el puerto asigna una nueva IP persistente.

{% hint style="info" %}
Los puertos de entrada persistentes específicos por país admiten autenticación estándar con nombre de usuario/contraseña y IP Whitelisting, pero no admiten parámetros a nivel de ciudad o estado.&#x20;
{% endhint %}

Consulta la [**panel de control de Oxylabs**](https://dashboard.oxylabs.io/en/) para obtener información sobre el punto de entrada, descarga una lista completa de puntos de entrada persistentes o consúltalos en la tabla a continuación.

{% file src="/files/f2ca3314b6f4c0dab6f515615ff802dab04aa2f2" %}

<details>

<summary><strong>Lista completa de nodos de entrada de proxy persistente</strong></summary>

{% hint style="success" %}
Usa la barra de búsqueda de la tabla a continuación para facilitar la navegación.
{% endhint %}

| <p>Aleatorio<br>pr.oxylabs.io:10000 - 49999</p>                   | <p>EE. UU.<br>us-pr.oxylabs.io:10001 - 19999</p>              | <p>Canadá<br>ca-pr.oxylabs.io:30001 - 39999</p>                    |
| ----------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------------ |
| <p>Gran Bretaña<br>gb-pr.oxylabs.io:20001 - 29999</p>             | <p>Alemania<br>de-pr.oxylabs.io:30001 - 39999</p>             | <p>Francia<br>fr-pr.oxylabs.io:40001 - 49999</p>                   |
| <p>España<br>es-pr.oxylabs.io:10001 - 19999</p>                   | <p>Italia<br>it-pr.oxylabs.io:20001 - 29999</p>               | <p>Suecia<br>se-pr.oxylabs.io:30001 - 39999</p>                    |
| <p>Grecia<br>gr-pr.oxylabs.io:40001 - 49999</p>                   | <p>Portugal<br>pt-pr.oxylabs.io:10001 - 19999</p>             | <p>Países Bajos<br>nl-pr.oxylabs.io:20001 - 29999</p>              |
| <p>Bélgica<br>be-pr.oxylabs.io:30001 - 39999</p>                  | <p>Rusia<br>ru-pr.oxylabs.io:40001 - 49999</p>                | <p>Ucrania<br>ua-pr.oxylabs.io:10001 - 19999</p>                   |
| <p>Polonia<br>pl-pr.oxylabs.io:20001 - 29999</p>                  | <p>Israel<br>il-pr.oxylabs.io:20001 - 29999</p>               | <p>Turquía<br>tr-pr.oxylabs.io:30001 - 39999</p>                   |
| <p>Australia<br>au-pr.oxylabs.io:40001 - 49999</p>                | <p>Malasia<br>my-pr.oxylabs.io:10001 - 19999</p>              | <p>Tailandia<br>th-pr.oxylabs.io:20001 - 29999</p>                 |
| <p>Corea del Sur<br>kr-pr.oxylabs.io:30001 - 39999</p>            | <p>Japón<br>jp-pr.oxylabs.io:40001 - 49999</p>                | <p>Filipinas<br>ph-pr.oxylabs.io:10001 - 19999</p>                 |
| <p>Singapur<br>sg-pr.oxylabs.io:20001 - 29999</p>                 | <p>China<br>cn-pr.oxylabs.io:30001 - 39999</p>                | <p>Hong Kong<br>hk-pr.oxylabs.io:40001 - 49999</p>                 |
| <p>Taiwán<br>tw-pr.oxylabs.io:10001 - 19999</p>                   | <p>India<br>in-pr.oxylabs.io:20001 - 29999</p>                | <p>Pakistán<br>pk-pr.oxylabs.io:30001 - 39999</p>                  |
| <p>Irán<br>ir-pr.oxylabs.io:40001 - 49999</p>                     | <p>Indonesia<br>id-pr.oxylabs.io:10001 - 19999</p>            | <p>Azerbaiyán<br>az-pr.oxylabs.io:20001 - 29999</p>                |
| <p>Kazajistán<br>kz-pr.oxylabs.io:30001 - 39999</p>               | <p>EAU<br>ae-pr.oxylabs.io:40001 - 49999</p>                  | <p>México<br>mx-pr.oxylabs.io:10001 - 19999</p>                    |
| <p>Brasil<br>br-pr.oxylabs.io:20001 - 29999</p>                   | <p>Argentina<br>ar-pr.oxylabs.io:30001 - 39999</p>            | <p>Chile<br>cl-pr.oxylabs.io:40001 - 49999</p>                     |
| <p>Perú<br>pe-pr.oxylabs.io:10001 - 19999</p>                     | <p>Ecuador<br>ec-pr.oxylabs.io:20001 - 29999</p>              | <p>Colombia<br>co-pr.oxylabs.io:30001 - 39999</p>                  |
| <p>Sudáfrica<br>za-pr.oxylabs.io:40001 - 49999</p>                | <p>Egipto<br>eg-pr.oxylabs.io:10001 - 19999</p>               | <p>Arabia Saudita<br>sa-pr.oxylabs.io:44001 - 44999</p>            |
| <p>Dinamarca<br>dk-pr.oxylabs.io:19001 - 19999</p>                | <p>Malí<br>ml-pr.oxylabs.io:13001 - 13999</p>                 | <p>Chipre<br>cy-pr.oxylabs.io:35001 - 35999</p>                    |
| <p>Honduras<br>hn-pr.oxylabs.io:48001 - 48999</p>                 | <p>Georgia<br>ge-pr.oxylabs.io:36001 - 36999</p>              | <p>Serbia<br>rs-pr.oxylabs.io:36001 - 36999</p>                    |
| <p>Costa Rica<br>cr-pr.oxylabs.io:44001 - 44999</p>               | <p>Malta<br>mt-pr.oxylabs.io:30001 - 30999</p>                | <p>Haití<br>ht-pr.oxylabs.io:47001 - 47999</p>                     |
| <p>Senegal<br>sn-pr.oxylabs.io:19001 - 19999</p>                  | <p>Eslovenia<br>si-pr.oxylabs.io:38001 - 38999</p>            | <p>Camerún<br>cm-pr.oxylabs.io:41001 - 41999</p>                   |
| <p>Yibuti<br>dj-pr.oxylabs.io:46001 - 46999</p>                   | <p>Angola<br>ao-pr.oxylabs.io:40001 - 40999</p>               | <p>Liberia<br>lr-pr.oxylabs.io:11001 - 11999</p>                   |
| <p>Afganistán<br>af-pr.oxylabs.io:28001 - 28999</p>               | <p>Bangladés<br>bd-pr.oxylabs.io:30001 - 30999</p>            | <p>Bahamas<br>bs-pr.oxylabs.io:41001 - 41999</p>                   |
| <p>Hungría<br>hu-pr.oxylabs.io:23001 - 23999</p>                  | <p>Eslovaquia<br>sk-pr.oxylabs.io:37001 - 37999</p>           | <p>Dominica<br>dm-pr.oxylabs.io:46001 - 46999</p>                  |
| <p>Kenia<br>ke-pr.oxylabs.io:10001 - 10999</p>                    | <p>Bosnia y Herzegovina<br>ba-pr.oxylabs.io:13001 - 13999</p> | <p>Nigeria<br>ng-pr.oxylabs.io:18001 - 18999</p>                   |
| <p>Catar<br>qa-pr.oxylabs.io:43001 - 43999</p>                    | <p>Yemen<br>ye-pr.oxylabs.io:48001 - 48999</p>                | <p>Belice<br>bz-pr.oxylabs.io:42001 - 42999</p>                    |
| <p>Chad<br>td-pr.oxylabs.io:43001 - 43999</p>                     | <p>Túnez<br>tn-pr.oxylabs.io:25001 - 25999</p>                | <p>Zimbabue<br>zw-pr.oxylabs.io:21001 - 21999</p>                  |
| <p>Zambia<br>zm-pr.oxylabs.io:27001 - 27999</p>                   | <p>Baréin<br>bh-pr.oxylabs.io:29001 - 29999</p>               | <p>Austria<br>at-pr.oxylabs.io:11001 - 11999</p>                   |
| <p>Irlanda<br>ie-pr.oxylabs.io:25001 - 25999</p>                  | <p>Noruega<br>no-pr.oxylabs.io:34001 - 34999</p>              | <p>Etiopía<br>et-pr.oxylabs.io:45001 - 45999</p>                   |
| <p>Costa de Marfil<br>ci-pr.oxylabs.io:49001 - 49999</p>          | <p>Fiyi<br>fj-pr.oxylabs.io:14001 - 14999</p>                 | <p>Sudán del Sur<br>ss-pr.oxylabs.io:22001 - 22999</p>             |
| <p>Jamaica<br>jm-pr.oxylabs.io:49001 - 49999</p>                  | <p>Bielorrusia<br>by-pr.oxylabs.io:15001 - 15999</p>          | <p>Finlandia<br>fi-pr.oxylabs.io:21001 - 21999</p>                 |
| <p>Mónaco<br>mc-pr.oxylabs.io:31001 - 31999</p>                   | <p>Nueva Zelanda<br>nz-pr.oxylabs.io:15001 - 15999</p>        | <p>Turkmenistán<br>tm-pr.oxylabs.io:46001 - 46999</p>              |
| <p>Armenia<br>am-pr.oxylabs.io:31001 - 31999</p>                  | <p>Islandia<br>is-pr.oxylabs.io:24001 - 24999</p>             | <p>Mauritania<br>mr-pr.oxylabs.io:14001 - 14999</p>                |
| <p>República Checa<br>cz-pr.oxylabs.io:18001 - 18999</p>          | <p>Venezuela<br>ve-pr.oxylabs.io:19001 - 19999</p>            | <p>Líbano<br>lb-pr.oxylabs.io:39001 - 39999</p>                    |
| <p>Mongolia<br>mn-pr.oxylabs.io:41001 - 41999</p>                 | <p>Benín<br>bj-pr.oxylabs.io:44001 - 44999</p>                | <p>Sudán<br>sd-pr.oxylabs.io:23001 - 23999</p>                     |
| <p>Jordania<br>jo-pr.oxylabs.io:38001 - 38999</p>                 | <p>Estonia<br>ee-pr.oxylabs.io:20001 - 20999</p>              | <p>Paraguay<br>py-pr.oxylabs.io:17001 - 17999</p>                  |
| <p>República Centroafricana<br>cf-pr.oxylabs.io:42001 - 42999</p> | <p>Camboya<br>kh-pr.oxylabs.io:34001 - 34999</p>              | <p>Panamá<br>pa-pr.oxylabs.io:10001 - 10999</p>                    |
| <p>Uruguay<br>uy-pr.oxylabs.io:18001 - 18999</p>                  | <p>Ghana<br>gh-pr.oxylabs.io:48001 - 48999</p>                | <p>Uzbekistán<br>uz-pr.oxylabs.io:47001 - 47999</p>                |
| <p>Albania<br>al-pr.oxylabs.io:49001 - 49999</p>                  | <p>Marruecos<br>ma-pr.oxylabs.io:16001 - 16999</p>            | <p>Bután<br>bt-pr.oxylabs.io:32001 - 32999</p>                     |
| <p>Mauricio<br>mu-pr.oxylabs.io:15001 - 15999</p>                 | <p>Letonia<br>lv-pr.oxylabs.io:26001 - 26999</p>              | <p>Madagascar<br>mg-pr.oxylabs.io:12001 - 12999</p>                |
| <p>Lituania<br>lt-pr.oxylabs.io:28001 - 28999</p>                 | <p>Moldavia<br>md-pr.oxylabs.io:32001 - 32999</p>             | <p>Montenegro<br>me-pr.oxylabs.io:33001 - 33999</p>                |
| <p>Rumanía<br>ro-pr.oxylabs.io:35001 - 35999</p>                  | <p>Irak<br>iq-pr.oxylabs.io:37001 - 37999</p>                 | <p>Gambia<br>gm-pr.oxylabs.io:47001 - 47999</p>                    |
| <p>Mozambique<br>mz-pr.oxylabs.io:17001 - 17999</p>               | <p>Croacia<br>hr-pr.oxylabs.io:16001 - 16999</p>              | <p>Puerto Rico<br>pr-pr.oxylabs.io:12001 - 12999</p>               |
| <p>Cuba<br>cu-pr.oxylabs.io:45001 - 45999</p>                     | <p>Aruba<br>aw-pr.oxylabs.io:10001 - 10999</p>                | <p>Seychelles<br>sc-pr.oxylabs.io:20001 - 20999</p>                |
| <p>Macedonia<br>mk-pr.oxylabs.io:40001 - 40999</p>                | <p>Maldivas<br>mv-pr.oxylabs.io:40001 - 40999</p>             | <p>Omán<br>om-pr.oxylabs.io:42001 - 42999</p>                      |
| <p>Liechtenstein<br>li-pr.oxylabs.io:27001 - 27999</p>            | <p>Suiza<br>ch-pr.oxylabs.io:39001 - 39999</p>                | <p>Bolivia<br>bo-pr.oxylabs.io:16001 - 16999</p>                   |
| <p>Uganda<br>ug-pr.oxylabs.io:26001 - 26999</p>                   | <p>Bulgaria<br>bg-pr.oxylabs.io:14001 - 14999</p>             | <p>Myanmar<br>mm-pr.oxylabs.io:33001 - 33999</p>                   |
| <p>Andorra<br>ad-pr.oxylabs.io:10001 - 10999</p>                  | <p>Togo<br>tg-pr.oxylabs.io:24001 - 24999</p>                 | <p>Islas Vírgenes Británicas<br>vg-pr.oxylabs.io:43001 - 43999</p> |
| <p>Trinidad y Tobago<br>tt-pr.oxylabs.io:13001 - 13999</p>        | <p>Luxemburgo<br>lu-pr.oxylabs.io:29001 - 29999</p>           | <p>​Unión Europea</p><p>eu-pr.oxylabs.io:10001 - 29999</p>         |

</details>

#### Ejemplos de código

{% tabs %}
{% tab title="cURL" %}

```shell
curl -x tr-pr.oxylabs.io:30001 -U "customer-USERNAME:PASSWORD" https://ip.oxylabs.io/location
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$proxy = 'tr-pr.oxylabs.io:30001';
$query = curl_init('https://ip.oxylabs.io/location');
curl_setopt($query, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($query, CURLOPT_PROXY, "http://$proxy");
curl_setopt($query, CURLOPT_PROXYUSERPWD, "customer-$username:$password");
$output = curl_exec($query);
curl_close($query);
if ($output)
    echo $output;
?>
```

{% endtab %}

{% tab title="Python" %}

```python
import urllib.request
import random
username = 'USERNAME'
password = 'PASSWORD'
entry = ('http://customer-%s:%s@tr-pr.oxylabs.io:30001' %
    (username, password))
query = urllib.request.ProxyHandler({
    'http': entry,
    'https': entry,
})
execute = urllib.request.build_opener(query)
print(execute.open('https://ip.oxylabs.io/location').read())
```

{% endtab %}

{% tab title="Java" %}

```java
package example;

import org.apache.http.HttpHost;
import org.apache.http.client.fluent.*;

public class Example {
    public static void main(String[] args) throws Exception {
        HttpHost entry = new HttpHost("tr-pr.oxylabs.io", 30001);
        String query = Executor.newInstance()
            .auth(entry, "customer-USERNAME", "PASS")
            .execute(Request.Get("http://ip.oxylabs.io/location").viaProxy(entry))
            .returnContent().asString();
        System.out.println(query);
    }
}
```

{% endtab %}

{% tab title="C#" %}

```csharp
using System;
using System;
using System.Net;

class Example
{
    static void Main()
    {
        var client = new WebClient();
        client.Proxy = new WebProxy("tr-pr.oxylabs.io:30001");
        client.Proxy.Credentials = new NetworkCredential("customer-USERNAME", "PASSWORD");
        Console.WriteLine(client.DownloadString("https://ip.oxylabs.io/location"));
    }
}
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
require 'uri'
require 'net/http'

uri = URI.parse('https://ip.oxylabs.io/location')
proxy = Net::HTTP::Proxy('tr-pr.oxylabs.io', 30001, 'customer-USERNAME', 'PASSWORD')

req = Net::HTTP::Get.new(uri.path)

result = proxy.start(uri.host,uri.port) do |http|
    http.request(req)
end

puts result.body
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://developers.oxylabs.io/products/es/proxies/residential-proxies/session-control.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
