IP Control
Instructions on how to rotate proxies for changing IP addresses and how to use static IPs for maintaining the same IP.
Pay per IP users can download the proxy list via the dashboard.
Proxy Rotation
Datacenter Proxies support proxy rotation. To use this feature you need to use port number 8000
. With each new request you will use a random IP.
Code examples
curl -x dc.oxylabs.io:8000 -U "user-USERNAME:PASSWORD" https://ip.oxylabs.io/location
#pip install requests
import requests
username = 'USERNAME'
password = 'PASSWORD'
proxy = 'dc.oxylabs.io:8000'
proxies = {
"https": ('https://user-%s:%s@%s' % (username, password, proxy))
}
response=requests.get("https://ip.oxylabs.io/location", proxies=proxies)
print(response.content)
//npm install axios
const axios = require("axios");
const https = require("https");
const client = axios.create({
httpsAgent: new https.Agent({
rejectUnauthorized: false,
}),
});
const username = 'USERNAME';
const password = 'PASSWORD'
client
.get("https://ip.oxylabs.io/location", {
proxy: {
protocol: "https",
host: "dc.oxylabs.io",
port: 8000,
auth: {
username: `user-${username}`,
password: password,
},
},
})
.then((res) => {
console.log(res.data);
})
.catch((err) => console.error(err));
<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$proxy = 'dc.oxylabs.io:8000';
$target = 'https://ip.oxylabs.io/location';
$request = curl_init($target);
curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($request, CURLOPT_PROXY, $proxy);
curl_setopt($request, CURLOPT_PROXYUSERPWD, "user-$username:$password");
$responseBody = curl_exec($request);
$error = curl_error($request);
curl_close($request);
if ($responseBody !== false) {
echo 'Response: ' . $responseBody;
} else {
echo 'Failed to connect to proxy: ' . $error;
}
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
username, password, entry := "USERNAME", "PASSWORD", "dc.oxylabs.io:8000"
proxy, err := url.Parse(fmt.Sprintf("https://user-%s:%s@%s", username, password, entry))
if err != nil {
panic(err)
}
transport := &http.Transport{
Proxy: http.ProxyURL(proxy),
}
client := &http.Client{Transport: transport}
target := "https://ip.oxylabs.io/location"
response, err := client.Get(target)
if err != nil {
panic(err)
}
defer response.Body.Close()
body, err := io.ReadAll(response.Body)
if err != nil {
panic(err)
}
fmt.Println("Response:")
fmt.Println(string(body))
}
package com.example;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Base64;
import org.apache.hc.client5.http.fluent.Request;
import org.apache.hc.core5.http.HttpHost;
public class App {
public static void main(String[] args) throws IOException, URISyntaxException {
String target = "http://ip.oxylabs.io/location";
String username = "USERNAME";
String password = "PASSWORD";
String proxy = "dc.oxylabs.io:8000";
URI proxyURI = new URI(String.format("https://user-%s:%s@%s", username, password, proxy));
String basicAuth = new String(
Base64.getEncoder()
.encode(
proxyURI.getUserInfo().getBytes()));
String response = Request.get(target)
.addHeader("Proxy-Authorization", "Basic " + basicAuth)
.viaProxy(HttpHost.create(proxyURI))
.execute().returnContent().asString();
System.out.println(response);
}
}
using System.Net;
// .NET currently does not support HTTPS proxies
var proxy = new WebProxy {
Address = new Uri("dc.oxylabs.io:8000"),
Credentials = new NetworkCredential(
userName: "user-USERNAME",
password: "PASSWORD"
)
};
var httpClientHandler = new HttpClientHandler {Proxy = proxy};
using var client = new HttpClient(handler: httpClientHandler, disposeHandler: true);
var result = await client.GetStringAsync("https://ip.oxylabs.io/location");
Console.WriteLine(result);
For the pay per IP billing type, each request will use a random IP from your Proxy list via port 8000
.
For the pay per traffic billing type, each request will use a random IP from the full pool via port 8000.
Static Sessions
Depending on your billing type, you can utilize specific ports to maintain a consistent IP address for your requests.
Datacenter Proxies per IP
For the pay per IP billing type, use a specific static port to make requests. You will find port numbers in your proxy list.
Here is an example using a port (8001
) for a static session:
curl -x dc.oxylabs.io:8001 -U user-USERNAME:PASSWORD https://ip.oxylabs.io/location
Find more code examples in other code languages below:
curl -x dc.oxylabs.io:8001 -U user-USERNAME:PASSWORD https://ip.oxylabs.io/location
#pip install requests
import requests
username = 'USERNAME'
password = 'PASSWORD'
proxy = 'dc.oxylabs.io:8001'
proxies = {
"https": ('https://user-%s:%s@%s' % (username, password, proxy))
}
response=requests.get("https://ip.oxylabs.io/location", proxies=proxies)
print(response.content)
//npm install axios
const axios = require("axios");
const https = require("https");
const client = axios.create({
httpsAgent: new https.Agent({
rejectUnauthorized: false,
}),
});
const username = 'USERNAME';
const password = 'PASSWORD'
client
.get("https://ip.oxylabs.io/location", {
proxy: {
protocol: "https",
host: "dc.oxylabs.io",
port: 8001,
auth: {
username: `user-${username}`,
password: password,
},
},
})
.then((res) => {
console.log(res.data);
})
.catch((err) => console.error(err));
<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$proxy = 'dc.oxylabs.io:8001';
$target = 'https://ip.oxylabs.io/location';
$request = curl_init($target);
curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($request, CURLOPT_PROXY, $proxy);
curl_setopt($request, CURLOPT_PROXYUSERPWD, "user-$username:$password");
$responseBody = curl_exec($request);
$error = curl_error($request);
curl_close($request);
if ($responseBody !== false) {
echo 'Response: ' . $responseBody;
} else {
echo 'Failed to connect to proxy: ' . $error;
}
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
username, password, entry := "USERNAME", "PASSWORD", "dc.oxylabs.io:8001"
proxy, err := url.Parse(fmt.Sprintf("https://user-%s:%s@%s", username, password, entry))
if err != nil {
panic(err)
}
transport := &http.Transport{
Proxy: http.ProxyURL(proxy),
}
client := &http.Client{Transport: transport}
target := "https://ip.oxylabs.io/location"
response, err := client.Get(target)
if err != nil {
panic(err)
}
defer response.Body.Close()
body, err := io.ReadAll(response.Body)
if err != nil {
panic(err)
}
fmt.Println("Response:")
fmt.Println(string(body))
}
package com.example;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Base64;
import org.apache.hc.client5.http.fluent.Request;
import org.apache.hc.core5.http.HttpHost;
public class App {
public static void main(String[] args) throws IOException, URISyntaxException {
String target = "http://ip.oxylabs.io/location";
String username = "USERNAME";
String password = "PASSWORD";
String proxy = "dc.oxylabs.io:8001";
URI proxyURI = new URI(String.format("https://user-%s:%s@%s", username, password, proxy));
String basicAuth = new String(
Base64.getEncoder()
.encode(
proxyURI.getUserInfo().getBytes()));
String response = Request.get(target)
.addHeader("Proxy-Authorization", "Basic " + basicAuth)
.viaProxy(HttpHost.create(proxyURI))
.execute().returnContent().asString();
System.out.println(response);
}
}
using System.Net;
// .NET currently does not support HTTPS proxies
var proxy = new WebProxy {
Address = new Uri("dc.oxylabs.io:8001"),
Credentials = new NetworkCredential(
userName: "user-USERNAME",
password: "PASSWORD"
)
};
var httpClientHandler = new HttpClientHandler {Proxy = proxy};
using var client = new HttpClient(handler: httpClientHandler, disposeHandler: true);
var result = await client.GetStringAsync("https://ip.oxylabs.io/location");
Console.WriteLine(result);
For a rotating or static session in a specific country, refer to Select country page.
Datacenter Proxies per traffic
For the pay per traffic billing type, a static port within the range of 8001
to 63000
(generate a random number within this range) will be used to make requests. Each request will receive a random IP from the pool, but the IP will remain consistent for the duration of the session.
Here is an example using a random port (35467
) for a static session:
curl -x dc.oxylabs.io:35467 -U user-USERNAME:PASSWORD https://ip.oxylabs.io/location
Find more code examples in other code languages below:
curl -x dc.oxylabs.io:35467 -U user-USERNAME:PASSWORD https://ip.oxylabs.io/location
#pip install requests
import requests
username = 'USERNAME'
password = 'PASSWORD'
proxy = 'dc.oxylabs.io:35467'
proxies = {
"https": ('https://user-%s:%s@%s' % (username, password, proxy))
}
response=requests.get("https://ip.oxylabs.io/location", proxies=proxies)
print(response.content)
//npm install axios
const axios = require("axios");
const https = require("https");
const client = axios.create({
httpsAgent: new https.Agent({
rejectUnauthorized: false,
}),
});
const username = 'USERNAME';
const password = 'PASSWORD'
client
.get("https://ip.oxylabs.io/location", {
proxy: {
protocol: "https",
host: "dc.oxylabs.io",
port: 35467,
auth: {
username: `user-${username}`,
password: password,
},
},
})
.then((res) => {
console.log(res.data);
})
.catch((err) => console.error(err));
<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$proxy = 'dc.oxylabs.io:35467';
$target = 'https://ip.oxylabs.io/location';
$request = curl_init($target);
curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($request, CURLOPT_PROXY, $proxy);
curl_setopt($request, CURLOPT_PROXYUSERPWD, "user-$username:$password");
$responseBody = curl_exec($request);
$error = curl_error($request);
curl_close($request);
if ($responseBody !== false) {
echo 'Response: ' . $responseBody;
} else {
echo 'Failed to connect to proxy: ' . $error;
}
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
username, password, entry := "USERNAME", "PASSWORD", "dc.oxylabs.io:35467"
proxy, err := url.Parse(fmt.Sprintf("https://user-%s:%s@%s", username, password, entry))
if err != nil {
panic(err)
}
transport := &http.Transport{
Proxy: http.ProxyURL(proxy),
}
client := &http.Client{Transport: transport}
target := "https://ip.oxylabs.io/location"
response, err := client.Get(target)
if err != nil {
panic(err)
}
defer response.Body.Close()
body, err := io.ReadAll(response.Body)
if err != nil {
panic(err)
}
fmt.Println("Response:")
fmt.Println(string(body))
}
package com.example;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Base64;
import org.apache.hc.client5.http.fluent.Request;
import org.apache.hc.core5.http.HttpHost;
public class App {
public static void main(String[] args) throws IOException, URISyntaxException {
String target = "http://ip.oxylabs.io/location";
String username = "USERNAME";
String password = "PASSWORD";
String proxy = "dc.oxylabs.io:35467";
URI proxyURI = new URI(String.format("https://user-%s:%s@%s", username, password, proxy));
String basicAuth = new String(
Base64.getEncoder()
.encode(
proxyURI.getUserInfo().getBytes()));
String response = Request.get(target)
.addHeader("Proxy-Authorization", "Basic " + basicAuth)
.viaProxy(HttpHost.create(proxyURI))
.execute().returnContent().asString();
System.out.println(response);
}
}
using System.Net;
// .NET currently does not support HTTPS proxies
var proxy = new WebProxy {
Address = new Uri("dc.oxylabs.io:35467"),
Credentials = new NetworkCredential(
userName: "user-USERNAME",
password: "PASSWORD"
)
};
var httpClientHandler = new HttpClientHandler {Proxy = proxy};
using var client = new HttpClient(handler: httpClientHandler, disposeHandler: true);
var result = await client.GetStringAsync("https://ip.oxylabs.io/location");
Console.WriteLine(result);
Last updated