Skip to content

Session Types ​

Rotating Session ​

Rotating sessions do not require a session identifier to be appended after the proxy-pool identifier zone-dcp. In other words, the default session type is a rotating session.

If you choose Rotating Session, every request switches to a new IP, making it ideal for workloads that require high anonymity.

Sticky Session ​

Sticky sessions let you keep a single IP address across multiple requests. To reuse the same IP repeatedly, append the session-sessid parameter after the proxy-pool identifier zone-dcp, for example session-123eizsdp.

The default session duration is 10 minutes, with up to 60 seconds of allowed inactivity (no requests). If there are no requests for 60 seconds or the IP becomes unavailable, the system automatically assigns a new IP address.

For example, the original query may assign proxy IP 1.1.1.1 to sessid-abcde12345. As long as new requests continue to use the same session ID and the IP remains online and available, traffic will keep going through 1.1.1.1. If no further requests are sent within 60 seconds, or if the IP becomes unavailable, the system assigns a new proxy IP. Subsequent queries for sessid-abcde12345 will then be routed through a backup IP such as 1.1.1.2.

Illustrative examples of credential strings:

USERNAME-zone-dcp-session-agd6ty6jbayl:PASSWORD
USERNAME-zone-dcp-session-jke15gnkac39:PASSWORD
USERNAME-zone-dcp-session-zq7f15gsgfgy:PASSWORD
USERNAME-zone-dcp-session-5ld641xn6bpu:PASSWORD
USERNAME-zone-dcp-session-rhads5haqu15:PASSWORD

Example:

In this example, the first request uses a US IP with the session string session-abcdef123456. All subsequent requests will continue using the same US IP for follow-up queries:

cURL ​

text
curl -x gateway.ipxss.com:7777 -U "USERNAME-zone-dcp-region-us-session-abcdef123456:PASSWORD" ipinfo.ipxss.com

C/C++ ​

cpp
// demo.cpp : Define the entry point of a console application
        //
        
        #include "stdafx.h"
        #include "curl/curl.h"
        #pragma comment(lib, "libcurl.lib")
        //cURL callback function
        static size_t write_buff_data(char *buffer, size_t size, size_t nitems, void *outstream)
        {
            //Copy the received data to a buffer
            memcpy(outstream, buffer, nitems*size);
            return nitems*size;
        }
        /*
        Use an HTTP proxy
        */
        int GetUrlHTTP(char *url, char *buff)
        {
            CURL *curl;
            CURLcode res;
            curl = curl_easy_init();
            if (curl)
            {
                curl_easy_setopt(curl, CURLOPT_PROXY,"http://proxy server:port");//Set the HTTP proxy address
                curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, "USERNAME-zone-dcp-region-us:PASSWORD");//username and password, separated by ":"
                curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)buff);//Set read/write buffers
                curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_buff_data);//Set callback function
                curl_easy_setopt(curl, CURLOPT_URL, url);//Set URL address
                curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, 10L);//Set a long integer to control the number of seconds to transfer the bytes defined by CURLOPT_LOW_SPEED_LIMIT
                curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, 50L);//Set a long integer to control the number of bytes to transfer
                curl_easy_setopt(curl, CURLOPT_MAX_RECV_SPEED_LARGE, 2000000L);//Maximum download speed
        
                res = curl_easy_perform(curl);
                curl_easy_cleanup(curl);
                if (res == CURLE_OK){
                    return res;
                }else {
                    printf("Error code:%d\n", res);
                    MessageBox(NULL, TEXT("Get IP error"), TEXT("Helper"), MB_ICONINFORMATION | MB_YESNO);
                }
            }
            return res;
        }
        /*
        Don't use a proxy
        */
        int GetUrl(char *url, char *buff)
        {
            CURL *curl;
            CURLcode res;
            //The cURL library used, initialize the cURL library
            curl = curl_easy_init();
            if (curl)
            {
                curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)buff);//Set read/write buffers
                curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_buff_data);//Set callback function
                curl_easy_setopt(curl, CURLOPT_URL, url);//Set URL address
                curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, 10L);//Set a long integer to control the number of seconds to transfer the bytes defined by CURLOPT_LOW_SPEED_LIMIT
                curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, 50L);//Set a long integer to control the number of bytes to transfer
                curl_easy_setopt(curl, CURLOPT_MAX_RECV_SPEED_LARGE, 2000000L);/*Maximum download speed*/
                res = curl_easy_perform(curl);
                curl_easy_cleanup(curl);
                if (res == CURLE_OK)
                {
                    return res;
                }
                else {
                    printf("Error code:%d\n", res);
                    MessageBox(NULL, TEXT("Get IP error"), TEXT("Helper"), MB_ICONINFORMATION | MB_YESNO);
                }
            }
            return res;
        }
        int main()
        {
            char *buff=(char*)malloc(1024*1024);
            memset(buff, 0, 1024 * 1024);
            //Not use an HTTP proxy
            GetUrl("http://ipinfo.ipxss.com", buff);
            printf("Not use proxy:%s\n", buff);
            //Use an HTTP proxy
            memset(buff, 0, 1024 * 1024);
            GetUrlHTTP("http://ipinfo.ipxss.com", buff);
            printf("HTTP result:%s\n", buff);
        
            free(buff);
            Sleep(10 * 1000);//Wait 10 seconds and exit
                    Wait 10 seconds and exit
            
            return 0;
        }

GO ​

go
package main
        
        import (
            "context"
            "fmt"
            "io/ioutil"
            "net"
            "net/http"
            "net/url"
            "strings"
            "time"
        
            "golang.org/x/net/proxy"
        )
        
        // User Pass Auth Setting
        var account = "USERNAME-zone-dcp-region-us"//Proxy_username
        var password = "PASSWORD"//Proxy_password
        
        // Proxy server
        var proxyServer = "HOST:PORT"//Example:xxx.na.ipxss.com:2336;
        
        // Test URL
        var testApi = "http://ipinfo.ipxss.com"
        
        func main() {
            go httpProxy(proxyServer, account, password)
        
            time.Sleep(time.Minute)
        }
        
        // http proxy
        func httpProxy(proxyUrl, user, pass string) {
            defer func() {
                if err := recover(); err != nil {
                    fmt.Println(time.Now().Format("2006-01-02 15:04:05 07"), "http", "response:", err)
                }
            }()
            urli := url.URL{}
        
            if !strings.Contains(proxyUrl, "http") {
                proxyUrl = fmt.Sprintf("http://%s", proxyUrl)
            }
        
            urlProxy, _ := urli.Parse(proxyUrl)
            if user != "" && pass != "" {
                urlProxy.User = url.UserPassword(user, pass)
            }
        
            client := &http.Client{
                Transport: &http.Transport{
                    Proxy: http.ProxyURL(urlProxy),
                },
            }
            rqt, err := http.NewRequest("GET", testApi, nil)
            if err != nil {
                panic(err)
                return
            }
            response, err := client.Do(rqt)
            if err != nil {
                panic(err)
                return
            }
        
            defer response.Body.Close()
            body, _ := ioutil.ReadAll(response.Body)
            fmt.Println(time.Now().Format("2006-01-02 15:04:05 07"), proxyUrl, "【http success】", "response:", response.Status, string(body))
        
            return
        }

Node.js ​

json
#!/usr/bin/env node
        require('request-promise')({
            url: 'http://ipinfo.ipxss.com',//Request URL
            proxy: 'http://USERNAME-zone-dcp-region-us-session-abcdef123456:[email protected]:7777',//proxy username-zone-proxy pool:proxy username@proxy server address
            })
        .then(function(data){ console.log(data); },
            function(err){ console.error(err); });

PHP ​

php
<?php
        //User Pass Auth setting
        $user = "USERNAME-zone-dcp-region-us";//Proxy_username
        $password = "PASSWORD";//Proxy_password
        // Target URL
        $targetUrl = "http://ipinfo.ipxss.com";
        // Proxy server
        $proxyServer = "proxy address";  //Example:xxx.na.ipxss.com:2336;
        $proxyUserPwd = "$user:$password";
                                        
        // Tunnel verification
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $targetUrl);
        curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                                        
        // Set proxy server
        curl_setopt($ch, CURLOPT_PROXYTYPE, 0); //http
        // curl_setopt($ch, CURLOPT_PROXYTYPE, 5); //sock5
        curl_setopt($ch, CURLOPT_PROXY, $proxyServer);
                                        
        // Set tunnel verification information
        curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727;)");
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
        curl_setopt($ch, CURLOPT_TIMEOUT, 5);
        curl_setopt($ch, CURLOPT_HEADER, true);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyUserPwd);
        $result = curl_exec($ch);
        $err = curl_error($ch);
                                        
        curl_close($ch);
                                        
        var_dump($err);
        var_dump($result);

JAVA ​

java
package demo;
        
        import okhttp3.Credentials;
        import okhttp3.OkHttpClient;
        import okhttp3.Request;
        
        import java.io.IOException;
        import java.net.InetSocketAddress;
        import java.net.PasswordAuthentication;
        import java.net.Proxy;
        
        /**
        * compile 'com.squareup.okhttp3:okhttp:4.9.3'
        */
        class AutProxyJava {
            public static void main(String[] args) throws IOException {
                testWithOkHttp();

            }
        
            /**
            * http proxy
            */
            public static void testWithOkHttp() throws IOException {
                String url = "http://ipinfo.ipxss.com";//Request URL
                //Create a proxy object of type HTTP and specify the host name and port number of the proxy server
                Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("host", "port"));//The "host" and "port" used here should be replaced with the proxy server address and port.
                // Build a custom OkHttpClient instance, set up a proxy server and add a proxy authenticator (proxyAuthenticator)
                OkHttpClient client = new OkHttpClient().newBuilder().proxy(proxy).proxyAuthenticator((route, response) -> {
                    // Generate the credential string for Basic authentication here
                    String credential = Credentials.basic("USERNAME-zone-dcp-region-us", "PASSWORD");//The "USERNAME-zone-static-region-us" and "PASSWORD" here should be replaced with proxy username and proxy password.
                    // If proxy server needs authentication, please add authentication information in request head.
                    return response.request().newBuilder()
                            .header("Proxy-Authorization", credential)
                            .build();
                }).build();
        
                //Send GET Request and get response
                Request request = new Request.Builder().url(url).build();
                okhttp3.Response response = client.newCall(request).execute();
                //Get and print response
                String responseString = response.body().string();
                System.out.println(responseString);
            }

Python ​

python
'''
        Import thread, time and request package)
        to realize multiple thread control, waiting and http request)
        '''
        import _thread
        import time
        import requests
        
        # Set request head
        headers = {
            "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
            "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Mobile/14G60 MicroMessenger/6.5.19 NetType/4G Language/zh_TW",
        }
        
        # Test URL
        mainUrl = 'http://ipinfo.ipxss.com'
        
        def testUrl():
            # Set proxy username and password
            proxy = {
                'http': 'http://USERNAME-zone-dcp-region-us-session-abcdef123456:[email protected]:7777',#proxy username:proxy password@proxy server IP:proxy server port
                'https': 'http://USERNAME-zone-dcp-region-us-session-abcdef123456:[email protected]:7777',#proxy username:proxy password@proxy server IP:proxy server port
            }
            try:
                res = requests.get(mainUrl, headers=headers, proxies=proxy, timeout=10)
                print(res.status_code, res.text)
            except Exception as e:
                print("Fail to visit", e)
                pass
        
        # Turn on 10 threads to test
        for i in range(0, 10):
            _thread.start_new_thread(testUrl, ())
            time.sleep(0.1)
        
        time.sleep(10)

Session Duration Control:

To control how long a sticky session lasts, append the sessTime parameter after session-sessid. The parameter value is the session duration you want to set. The maximum session duration is 30 minutes. When the preset duration expires or the IP becomes unavailable, the system automatically switches to a new IP.

Note: The session-time parameter does not guarantee that all of your requests will finish before the session expires. Even if a request is still in progress, the session will expire once the configured time limit is reached.

Credential List Examples:

The following examples show credential strings for establishing different sessions with different session durations (in minutes).

USERNAME-zone-dcp-session-15jrAGF6jbayl-sessTime-5:PASSWORD
USERNAME-zone-dcp-session-jh125fdaf5ja-sessTime-10:PASSWORD
USERNAME-zone-dcp-session-54khfdhs4uyw-sessTime-15:PASSWORD
USERNAME-zone-dcp-session-lksagfd7p165-sessTime-20:PASSWORD
USERNAME-zone-dcp-session-51ajsscv86hg-sessTime-25:PASSWORD

Code Example:

In this example, the previously used US IP is selected again. This time, however, the session string and the sessTime parameter are added to keep it active for 15 minutes.

cURL ​

text
curl -x gateway.ipxss.com:7777 -U "USERNAME-zone-dcp-region-us-session-abcdef123456-sessTime-15:PASSWORD" ipinfo.ipxss.com

C/C++ ​

cpp
// demo.cpp : Define the entry point of a console application
        //
        
        #include "stdafx.h"
        #include "curl/curl.h"
        #pragma comment(lib, "libcurl.lib")
        //cURL callback function
        static size_t write_buff_data(char *buffer, size_t size, size_t nitems, void *outstream)
        {
            //Copy the received data to a buffer
            memcpy(outstream, buffer, nitems*size);
            return nitems*size;
        }
        /*
        Use an HTTP proxy
        */
        int GetUrlHTTP(char *url, char *buff)
        {
            CURL *curl;
            CURLcode res;
            curl = curl_easy_init();
            if (curl)
            {
                curl_easy_setopt(curl, CURLOPT_PROXY,"http://proxy server:port");//Set the HTTP proxy address
                curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, "USERNAME-zone-dcp-region-us:PASSWORD");//username and password, separated by ":"
                curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)buff);//Set read/write buffers
                curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_buff_data);//Set callback function
                curl_easy_setopt(curl, CURLOPT_URL, url);//Set URL address
                curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, 10L);//Set a long integer to control the number of seconds to transfer the bytes defined by CURLOPT_LOW_SPEED_LIMIT
                curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, 50L);//Set a long integer to control the number of bytes to transfer
                curl_easy_setopt(curl, CURLOPT_MAX_RECV_SPEED_LARGE, 2000000L);//Maximum download speed
        
                res = curl_easy_perform(curl);
                curl_easy_cleanup(curl);
                if (res == CURLE_OK){
                    return res;
                }else {
                    printf("Error code:%d\n", res);
                    MessageBox(NULL, TEXT("Get IP error"), TEXT("Helper"), MB_ICONINFORMATION | MB_YESNO);
                }
            }
            return res;
        }
        /*
        Don't use a proxy
        */
        int GetUrl(char *url, char *buff)
        {
            CURL *curl;
            CURLcode res;
            //The cURL library used, initialize the cURL library
            curl = curl_easy_init();
            if (curl)
            {
                curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)buff);//Set read/write buffers
                curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_buff_data);//Set callback function
                curl_easy_setopt(curl, CURLOPT_URL, url);//Set URL address
                curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, 10L);//Set a long integer to control the number of seconds to transfer the bytes defined by CURLOPT_LOW_SPEED_LIMIT
                curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, 50L);//Set a long integer to control the number of bytes to transfer
                curl_easy_setopt(curl, CURLOPT_MAX_RECV_SPEED_LARGE, 2000000L);/*Maximum download speed*/
                res = curl_easy_perform(curl);
                curl_easy_cleanup(curl);
                if (res == CURLE_OK)
                {
                    return res;
                }
                else {
                    printf("Error code:%d\n", res);
                    MessageBox(NULL, TEXT("Get IP error"), TEXT("Helper"), MB_ICONINFORMATION | MB_YESNO);
                }
            }
            return res;
        }
        int main()
        {
            char *buff=(char*)malloc(1024*1024);
            memset(buff, 0, 1024 * 1024);
            //Not use an HTTP proxy
            GetUrl("http://ipinfo.ipxss.com", buff);
            printf("Not use proxy:%s\n", buff);
            //Use an HTTP proxy
            memset(buff, 0, 1024 * 1024);
            GetUrlHTTP("http://ipinfo.ipxss.com", buff);
            printf("HTTP result:%s\n", buff);
        
            free(buff);
            Sleep(10 * 1000);//Wait 10 seconds and exit
                    Wait 10 seconds and exit
            
            return 0;
        }

GO ​

go
package main
        
        import (
            "context"
            "fmt"
            "io/ioutil"
            "net"
            "net/http"
            "net/url"
            "strings"
            "time"
        
            "golang.org/x/net/proxy"
        )
        
        // User Pass Auth Setting
        var account = "USERNAME-zone-dcp-region-us"//Proxy_username
        var password = "PASSWORD"//Proxy_password
        
        // Proxy server
        var proxyServer = "HOST:PORT"//Example:xxx.na.ipxss.com:2336;
        
        // Test URL
        var testApi = "http://ipinfo.ipxss.com"
        
        func main() {
            go httpProxy(proxyServer, account, password)
        
            time.Sleep(time.Minute)
        }
        
        // http proxy
        func httpProxy(proxyUrl, user, pass string) {
            defer func() {
                if err := recover(); err != nil {
                    fmt.Println(time.Now().Format("2006-01-02 15:04:05 07"), "http", "response:", err)
                }
            }()
            urli := url.URL{}
        
            if !strings.Contains(proxyUrl, "http") {
                proxyUrl = fmt.Sprintf("http://%s", proxyUrl)
            }
        
            urlProxy, _ := urli.Parse(proxyUrl)
            if user != "" && pass != "" {
                urlProxy.User = url.UserPassword(user, pass)
            }
        
            client := &http.Client{
                Transport: &http.Transport{
                    Proxy: http.ProxyURL(urlProxy),
                },
            }
            rqt, err := http.NewRequest("GET", testApi, nil)
            if err != nil {
                panic(err)
                return
            }
            response, err := client.Do(rqt)
            if err != nil {
                panic(err)
                return
            }
        
            defer response.Body.Close()
            body, _ := ioutil.ReadAll(response.Body)
            fmt.Println(time.Now().Format("2006-01-02 15:04:05 07"), proxyUrl, "【http success】", "response:", response.Status, string(body))
        
            return
        }

Node.js ​

json
#!/usr/bin/env node
        require('request-promise')({
            url: 'http://ipinfo.ipxss.com',//Request URL
            proxy: 'http://USERNAME-zone-dcp-region-us-session-abcdef123456-sessTime-15:[email protected]:7777',//proxy username-zone-proxy pool:proxy username@proxy server address
            })
        .then(function(data){ console.log(data); },
            function(err){ console.error(err); });

PHP ​

php
<?php
        //User Pass Auth setting
        $user = "USERNAME-zone-dcp-region-us";//Proxy_username
        $password = "PASSWORD";//Proxy_password
        // Target URL
        $targetUrl = "http://ipinfo.ipxss.com";
        // Proxy server
        $proxyServer = "proxy address";  //Example:xxx.na.ipxss.com:2336;
        $proxyUserPwd = "$user:$password";
                                        
        // Tunnel verification
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $targetUrl);
        curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                                        
        // Set proxy server
        curl_setopt($ch, CURLOPT_PROXYTYPE, 0); //http
        // curl_setopt($ch, CURLOPT_PROXYTYPE, 5); //sock5
        curl_setopt($ch, CURLOPT_PROXY, $proxyServer);
                                        
        // Set tunnel verification information
        curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727;)");
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
        curl_setopt($ch, CURLOPT_TIMEOUT, 5);
        curl_setopt($ch, CURLOPT_HEADER, true);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyUserPwd);
        $result = curl_exec($ch);
        $err = curl_error($ch);
                                        
        curl_close($ch);
                                        
        var_dump($err);
        var_dump($result);

JAVA ​

java
package demo;
        
        import okhttp3.Credentials;
        import okhttp3.OkHttpClient;
        import okhttp3.Request;
        
        import java.io.IOException;
        import java.net.InetSocketAddress;
        import java.net.PasswordAuthentication;
        import java.net.Proxy;
        
        /**
        * compile 'com.squareup.okhttp3:okhttp:4.9.3'
        */
        class AutProxyJava {
            public static void main(String[] args) throws IOException {
                testWithOkHttp();
        
            }
        
            /**
            * http proxy
            */
            public static void testWithOkHttp() throws IOException {
                String url = "http://ipinfo.ipxss.com";//Request URL
                //Create a proxy object of type HTTP and specify the host name and port number of the proxy server
                Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("host", "port"));//The "host" and "port" used here should be replaced with the proxy server address and port.
                // Build a custom OkHttpClient instance, set up a proxy server and add a proxy authenticator (proxyAuthenticator)
                OkHttpClient client = new OkHttpClient().newBuilder().proxy(proxy).proxyAuthenticator((route, response) -> {
                    // Generate the credential string for Basic authentication here
                    String credential = Credentials.basic("USERNAME-zone-dcp-region-us", "PASSWORD");//The "USERNAME-zone-static-region-us" and "PASSWORD" here should be replaced with proxy username and proxy password.
                    // If proxy server needs authentication, please add authentication information in request head.
                    return response.request().newBuilder()
                            .header("Proxy-Authorization", credential)
                            .build();
                }).build();
        
                //Send GET Request and get response
                Request request = new Request.Builder().url(url).build();
                okhttp3.Response response = client.newCall(request).execute();
                //Get and print response
                String responseString = response.body().string();
                System.out.println(responseString);
            }

Python ​

python
'''
        Import thread, time and request package)
        to realize multiple thread control, waiting and http request)
        '''
        import _thread
        import time
        import requests
        
        # Set request head
        headers = {
            "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
            "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Mobile/14G60 MicroMessenger/6.5.19 NetType/4G Language/zh_TW",
        }
        
        # Test URL
        mainUrl = 'http://ipinfo.ipxss.com'
        
        def testUrl():
            # Set proxy username and password
            proxy = {
                'http': 'http://USERNAME-zone-dcp-region-us-session-abcdef123456-sessTime-15:[email protected]:7777',#proxy username:proxy password@proxy server IP:proxy server port
                'https': 'http://USERNAME-zone-dcp-region-us-session-abcdef123456-sessTime-15:[email protected]',#proxy username:proxy password@proxy server IP:proxy server port
            }
            try:
                res = requests.get(mainUrl, headers=headers, proxies=proxy, timeout=10)
                print(res.status_code, res.text)
            except Exception as e:
                print("Fail to visit", e)
                pass
        
        # Turn on 10 threads to test
        for i in range(0, 10):
            _thread.start_new_thread(testUrl, ())
            time.sleep(0.1)
        
        time.sleep(10)

Need Help? ​

If you need further clarification or assistance with location targeting, feel free to contact us at any time:

IPxSS Proxy Infrastructure