> 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 sesiones

## Configura una sesión predeterminada

La `sessid` el parámetro te permite enrutar varias solicitudes a través de la misma dirección IP. Añade `sessid` después de tu `username` con una cadena alfanumérica generada aleatoriamente, por ejemplo `sessid-abcd1234`.

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzrXw45naRpCZ0Ku9AjY1%2Fuploads%2FxR5NdybM3rjlbhAbPBZN%2Fsession-id.mp4?alt=media>" %}

Por ejemplo, una solicitud inicial que use `sessid-abcd1234` podría asignarse la IP `1.1.1.1`. Mientras sigas enviando solicitudes con el mismo ID de sesión y esa IP siga en línea, tus consultas seguirán enrutándose a través de `1.1.1.1`. Si haces una pausa de 60 segundos o la IP se desconecta, el sistema asigna una nueva, por lo que tu siguiente solicitud con `sessid-abcd1234` se enruta a través de una IP diferente, como `1.1.1.2`.

De forma predeterminada, una sesión dura 10 minutos o termina después de 60 segundos sin solicitudes, lo que ocurra primero. Una vez que eso sucede, se asigna automáticamente una nueva dirección IP. Para cambiar la duración de la sesión, consulta [**Extender la duración de la sesión**](#extend-session-duration).

### **Ejemplo de lista de credenciales:**

El ejemplo representa una lista de credenciales que establecen diferentes sesiones.

```
customer-USERNAME-cc-DE-sessid-qwert:PASSWORD
customer-USERNAME-cc-US-sessid-asdfg:PASSWORD
customer-USERNAME-cc-GB-sessid-zxcvb:PASSWORD
```

### Ejemplo de código

En este ejemplo, usamos una IP alemana con `sessid-abcd1234` en el nombre de usuario con la primera solicitud. Todas las solicitudes siguientes mantendrán la misma IP alemana para consultas posteriores:

{% 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

El parámetro sesstime se usa junto con sessid para mantener una sesión activa más tiempo que los 10 minutos predeterminados o hasta 60 segundos de inactividad (sin solicitudes).

{% hint style="success" %}
**Aviso:** Puedes usar el `sesstime` parámetro para **mantener la misma IP hasta por 1440 minutos** (24 horas). Sin embargo, como el pool de proxies residenciales es dinámico, tu conexión puede terminar antes. Si eso ocurre, inicia una sesión con un nuevo parámetro de sesión.
{% endhint %}

{% hint style="warning" %}
**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 siguen en curso.
{% endhint %}

### **Ejemplo de lista de credenciales:**

El ejemplo representa una lista de credenciales que establecen diferentes sesiones con distintos tiempos de sesión (minutos).

```
customer-USERNAME-cc-DE-sessid-qwert-sesstime-10:PASSWORD
customer-USERNAME-cc-US-sessid-asdfg-sesstime-20:PASSWORD
customer-USERNAME-cc-GB-sessid-zxcvb-sesstime-30:PASSWORD
```

### Ejemplo de código

Elegimos la misma IP alemana que en el ejemplo anterior; esta vez añadimos `sessid` cadena y `sesstime` 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 %}

## Controla la rotación de IP de la sesión

La `sessid_oneip` el parámetro es una alternativa a `sessid` para los casos en que debes mantener exactamente la misma IP durante toda la sesión.

Con un `sessid`, si el nodo de salida asignado se desconecta antes de que expire el tiempo de sesión, el sistema asigna automáticamente una nueva IP y tu sesión continúa. Con `sessid_oneip`, la sesión queda vinculada a un único nodo de salida: una vez que esa IP ya no está disponible, en lugar de rotar a una nueva, la solicitud falla con una respuesta HTTP `502` respuesta. En ese momento, inicia una nueva sesión con un nuevo `sessid_oneip` valor. `sessid_oneip` puede combinarse con `sesstime` de la misma forma que sessid.

{% hint style="info" %}
**Nota:** `sessid_oneip` es una alternativa opcional a `sessid`. El comportamiento predeterminado `sessid` (la rotación automática a una nueva IP cuando expira el nodo de salida) no cambia.
{% endhint %}

### Ejemplo de lista de credenciales:

Las siguientes credenciales establecen cada una una sesión separada de una sola IP, con un país y un tiempo de sesión diferentes:

```
customer-USERNAME-cc-DE-sessid_oneip-qwert-sesstime-10:PASSWORD
customer-USERNAME-cc-US-sessid_oneip-asdfg-sesstime-20:PASSWORD
customer-USERNAME-cc-GB-sessid_oneip-zxcvb-sesstime-30:PASSWORD
```

### Ejemplo de código

Este ejemplo usa una IP alemana (`DE`) IP con `sessid_oneip-qwert` y un `sesstime` de 10 minutos. La IP permanece fija durante la sesión; si deja de estar disponible, la solicitud devuelve HTTP `502` en lugar de rotar:

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

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

{% endtab %}
{% endtabs %}

Para usar otro idioma, toma cualquier `sessid` ejemplo de las secciones anteriores y reemplaza `sessid` con `sessid_oneip` en la cadena de inicio de sesión.

## Nodos de entrada de proxy sticky

El punto de entrada de proxy sticky específico por país devolverá la misma IP con cada nueva solicitud mientras uses el mismo puerto. La persistencia de IP funciona hasta por 10 minutos. Después de eso, la IP se reemplaza por una nueva.

No necesitas pasar ningún parámetro adicional, solo `customer-username:password`. Si tienes IPs en la lista blanca, no necesitas pasar credenciales de inicio de sesión. Los puertos específicos por país no admiten resultados a nivel de ciudad.

Consulta [**panel de control**](https://dashboard.oxylabs.io/en/) para obtener información sobre los puntos de entrada. Descarga una lista completa de puntos de entrada sticky o consúltalos en la tabla siguiente.

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

| Random\npr.oxylabs.io:10000 - 49999                      | US\nus-pr.oxylabs.io:10001 - 19999                   | Canadá\nca-pr.oxylabs.io:30001 - 39999                     |
| -------------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------------- |
| Gran Bretaña\ngb-pr.oxylabs.io:20001 - 29999             | Alemania\nde-pr.oxylabs.io:30001 - 39999             | Francia\nfr-pr.oxylabs.io:40001 - 49999                    |
| España\nes-pr.oxylabs.io:10001 - 19999                   | Italia\nit-pr.oxylabs.io:20001 - 29999               | Suecia\nse-pr.oxylabs.io:30001 - 39999                     |
| Grecia\ngr-pr.oxylabs.io:40001 - 49999                   | Portugal\npt-pr.oxylabs.io:10001 - 19999             | Países Bajos\nnl-pr.oxylabs.io:20001 - 29999               |
| Bélgica\nbe-pr.oxylabs.io:30001 - 39999                  | Rusia\nru-pr.oxylabs.io:40001 - 49999                | Ucrania\nua-pr.oxylabs.io:10001 - 19999                    |
| Polonia\npl-pr.oxylabs.io:20001 - 29999                  | Israel\nil-pr.oxylabs.io:20001 - 29999               | Turquía\ntr-pr.oxylabs.io:30001 - 39999                    |
| Australia\nau-pr.oxylabs.io:40001 - 49999                | Malasia\nmy-pr.oxylabs.io:10001 - 19999              | Tailandia\nth-pr.oxylabs.io:20001 - 29999                  |
| Corea del Sur\nkr-pr.oxylabs.io:30001 - 39999            | Japón\njp-pr.oxylabs.io:40001 - 49999                | Filipinas\nph-pr.oxylabs.io:10001 - 19999                  |
| Singapur\nsg-pr.oxylabs.io:20001 - 29999                 | China\ncn-pr.oxylabs.io:30001 - 39999                | Hong Kong\nhk-pr.oxylabs.io:40001 - 49999                  |
| Taiwán\ntw-pr.oxylabs.io:10001 - 19999                   | India\nin-pr.oxylabs.io:20001 - 29999                | Pakistán\npk-pr.oxylabs.io:30001 - 39999                   |
| Irán\nir-pr.oxylabs.io:40001 - 49999                     | Indonesia\nid-pr.oxylabs.io:10001 - 19999            | Azerbaiyán\naz-pr.oxylabs.io:20001 - 29999                 |
| Kazajistán\nkz-pr.oxylabs.io:30001 - 39999               | EAU\nae-pr.oxylabs.io:40001 - 49999                  | México\nmx-pr.oxylabs.io:10001 - 19999                     |
| Brasil\nbr-pr.oxylabs.io:20001 - 29999                   | Argentina\nar-pr.oxylabs.io:30001 - 39999            | Chile\ncl-pr.oxylabs.io:40001 - 49999                      |
| Perú\npe-pr.oxylabs.io:10001 - 19999                     | Ecuador\nec-pr.oxylabs.io:20001 - 29999              | Colombia\nco-pr.oxylabs.io:30001 - 39999                   |
| Sudáfrica\nza-pr.oxylabs.io:40001 - 49999                | Egipto\neg-pr.oxylabs.io:10001 - 19999               | Arabia Saudita\nsa-pr.oxylabs.io:44001 - 44999             |
| Dinamarca\ndk-pr.oxylabs.io:19001 - 19999                | Malí\nml-pr.oxylabs.io:13001 - 13999                 | Chipre\ncy-pr.oxylabs.io:35001 - 35999                     |
| Honduras\nhn-pr.oxylabs.io:48001 - 48999                 | Georgia\nge-pr.oxylabs.io:36001 - 36999              | Serbia\nrs-pr.oxylabs.io:36001 - 36999                     |
| Costa Rica\ncr-pr.oxylabs.io:44001 - 44999               | Malta\nmt-pr.oxylabs.io:30001 - 30999                | Haití\nht-pr.oxylabs.io:47001 - 47999                      |
| Senegal\nsn-pr.oxylabs.io:19001 - 19999                  | Eslovenia\nsi-pr.oxylabs.io:38001 - 38999            | Camerún\ncm-pr.oxylabs.io:41001 - 41999                    |
| Yibuti\ndj-pr.oxylabs.io:46001 - 46999                   | Angola\nao-pr.oxylabs.io:40001 - 40999               | Liberia\nlr-pr.oxylabs.io:11001 - 11999                    |
| Afganistán\naf-pr.oxylabs.io:28001 - 28999               | Bangladés\nbd-pr.oxylabs.io:30001 - 30999            | Bahamas\nbs-pr.oxylabs.io:41001 - 41999                    |
| Hungría\nhu-pr.oxylabs.io:23001 - 23999                  | Eslovaquia\nsk-pr.oxylabs.io:37001 - 37999           | Dominica\ndm-pr.oxylabs.io:46001 - 46999                   |
| Kenia\nke-pr.oxylabs.io:10001 - 10999                    | Bosnia y Herzegovina\nba-pr.oxylabs.io:13001 - 13999 | Nigeria\nng-pr.oxylabs.io:18001 - 18999                    |
| Catar\nqa-pr.oxylabs.io:43001 - 43999                    | Yemen\nye-pr.oxylabs.io:48001 - 48999                | Belice\nbz-pr.oxylabs.io:42001 - 42999                     |
| Chad\ntd-pr.oxylabs.io:43001 - 43999                     | Túnez\ntn-pr.oxylabs.io:25001 - 25999                | Zimbabue\nzw-pr.oxylabs.io:21001 - 21999                   |
| Zambia\nzm-pr.oxylabs.io:27001 - 27999                   | Baréin\nbh-pr.oxylabs.io:29001 - 29999               | Austria\nat-pr.oxylabs.io:11001 - 11999                    |
| Irlanda\nie-pr.oxylabs.io:25001 - 25999                  | Noruega\nno-pr.oxylabs.io:34001 - 34999              | Etiopía\net-pr.oxylabs.io:45001 - 45999                    |
| Costa de Marfil\nci-pr.oxylabs.io:49001 - 49999          | Fiyi\nfj-pr.oxylabs.io:14001 - 14999                 | Sudán del Sur\nss-pr.oxylabs.io:22001 - 22999              |
| Jamaica\njm-pr.oxylabs.io:49001 - 49999                  | Bielorrusia\nby-pr.oxylabs.io:15001 - 15999          | Finlandia\nfi-pr.oxylabs.io:21001 - 21999                  |
| Mónaco\nmc-pr.oxylabs.io:31001 - 31999                   | Nueva Zelanda\nnz-pr.oxylabs.io:15001 - 15999        | Turkmenistán\ntm-pr.oxylabs.io:46001 - 46999               |
| Armenia\nam-pr.oxylabs.io:31001 - 31999                  | Islandia\nis-pr.oxylabs.io:24001 - 24999             | Mauritania\nmr-pr.oxylabs.io:14001 - 14999                 |
| República Checa\ncz-pr.oxylabs.io:18001 - 18999          | Venezuela\nve-pr.oxylabs.io:19001 - 19999            | Líbano\nlb-pr.oxylabs.io:39001 - 39999                     |
| Mongolia\nmn-pr.oxylabs.io:41001 - 41999                 | Benín\nbj-pr.oxylabs.io:44001 - 44999                | Sudán\nsd-pr.oxylabs.io:23001 - 23999                      |
| Jordania\njo-pr.oxylabs.io:38001 - 38999                 | Estonia\nee-pr.oxylabs.io:20001 - 20999              | Paraguay\npy-pr.oxylabs.io:17001 - 17999                   |
| República Centroafricana\ncf-pr.oxylabs.io:42001 - 42999 | Camboya\nkh-pr.oxylabs.io:34001 - 34999              | Panamá\npa-pr.oxylabs.io:10001 - 10999                     |
| Uruguay\nuy-pr.oxylabs.io:18001 - 18999                  | Ghana\ngh-pr.oxylabs.io:48001 - 48999                | Uzbekistán\nuz-pr.oxylabs.io:47001 - 47999                 |
| Albania\nal-pr.oxylabs.io:49001 - 49999                  | Marruecos\nma-pr.oxylabs.io:16001 - 16999            | Bután\nbt-pr.oxylabs.io:32001 - 32999                      |
| Mauricio\nmu-pr.oxylabs.io:15001 - 15999                 | Letonia\nlv-pr.oxylabs.io:26001 - 26999              | Madagascar\nmg-pr.oxylabs.io:12001 - 12999                 |
| Lituania\nlt-pr.oxylabs.io:28001 - 28999                 | Moldavia\nmd-pr.oxylabs.io:32001 - 32999             | Montenegro\nme-pr.oxylabs.io:33001 - 33999                 |
| Rumanía\nro-pr.oxylabs.io:35001 - 35999                  | Irak\niq-pr.oxylabs.io:37001 - 37999                 | Gambia\ngm-pr.oxylabs.io:47001 - 47999                     |
| Mozambique\nmz-pr.oxylabs.io:17001 - 17999               | Croacia\nhr-pr.oxylabs.io:16001 - 16999              | Puerto Rico\npr-pr.oxylabs.io:12001 - 12999                |
| Cuba\ncu-pr.oxylabs.io:45001 - 45999                     | Aruba\naw-pr.oxylabs.io:10001 - 10999                | Seychelles\nsc-pr.oxylabs.io:20001 - 20999                 |
| Macedonia\nmk-pr.oxylabs.io:40001 - 40999                | Maldivas\nmv-pr.oxylabs.io:40001 - 40999             | Omán\nom-pr.oxylabs.io:42001 - 42999                       |
| Liechtenstein\nli-pr.oxylabs.io:27001 - 27999            | Suiza\nch-pr.oxylabs.io:39001 - 39999                | Bolivia\nbo-pr.oxylabs.io:16001 - 16999                    |
| Uganda\nug-pr.oxylabs.io:26001 - 26999                   | Bulgaria\nbg-pr.oxylabs.io:14001 - 14999             | Myanmar\nmm-pr.oxylabs.io:33001 - 33999                    |
| Andorra\nad-pr.oxylabs.io:10001 - 10999                  | Togo\ntg-pr.oxylabs.io:24001 - 24999                 | Islas Vírgenes Británicas\nvg-pr.oxylabs.io:43001 - 43999  |
| Trinidad y Tobago\ntt-pr.oxylabs.io:13001 - 13999        | Luxemburgo\nlu-pr.oxylabs.io:29001 - 29999           | <p>​Unión Europea</p><p>eu-pr.oxylabs.io:10001 - 29999</p> |

### Ejemplos de código

En este ejemplo, ejecutamos una consulta desde una IP turca a `ip.oxylabs.io`. La misma IP se mantendrá hasta por 10 minutos. Hemos elegido el puerto 30001. Sin embargo, los puntos de entrada sticky de Turquía cubren los puertos de 30001 a 39999.

{% 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
