Session Control
Residential
Mobile
Rotating ISP
Adding the sessid parameter with a session ID string, for example, sessid-abc12345, enables session control. This means that a proxy will not change with the following requests. The example below shows how session control works:
Session control
The system keeps the same IP associated with a particular session ID as long as there is some activity (requests). After 60 seconds of inactivity, the IP is automatically changed to a different one.
For example, your initial query with sessid-random123 got assigned proxy IP address 1.1.1.1. As long as you keep sending new requests with the same session ID and that IP address is online and available, the system will route your queries through 1.1.1.1. If you stop sending requests or the IP address is no longer online, the system will assign a new proxy IP after 60 seconds. Your next query with sessid-random123 will be routed through a different IP address.
The standard session time is 10 minutes, but it can be increased. Contact your account manager to learn more.

Code example

We chose German IP for the first request and will keep the same IP with further queries (session control):
cURL
PHP
Python
Java
C#
Ruby
curl -x pr.oxylabs.io:7777 -U "customer-USERNAME-cc-DE-sessid-abcde12345:PASSWORD" https://ipinfo.io
<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$country = 'DE';
$session = mt_rand();
$proxy = 'pr.oxylabs.io:7777';
$query = curl_init('https://ipinfo.io');
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;
?>
import urllib.request
import random
username = 'USERNAME'
password = 'PASSWORD'
country = 'DE'
city = 'munich'
session = random.random()
entry = ('http://customer-%s-cc-%s-city-%s-sessid-%s:%[email protected]:7777' %
(username, country, city, session, password))
query = urllib.request.ProxyHandler({
'http': entry,
'https': entry,
})
execute = urllib.request.build_opener(query)
print(execute.open('https://ipinfo.io').read())
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://ipinfo.io"));
} finally { client.close(); }
}
}
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://ipinfo.io"));
}
}
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://ipinfo.io/")
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
Copy link