{
    "code":0,
    "success":true,
    "msg":"0",
    "data":[
        {"ip":"47.244.192.12","port":16098},
        {"ip":"47.244.192.12","port":15698}
    ]
}
            
         Generate API links and call HTTP get request to return the required IP results * the required API links can be assembled directly according to the following format:
The required APIs can be assembled directly in the following format Link:http://tiqu.linksocket.com:81/abroad?num=1&type=1&flow=1&lb=1&sb=0
Get remaining traffic interface: http://api.ipidea.io/index/index/get_my_balance?neek=xxxx&appkey=xxxx
Add whitelist interface: http://api.ipidea.io/index/index/save_white?neek=xxxx&appkey=xxxx&white=Your IP
Delete whitelist interface: http://api.ipidea.io/index/index/del_white?neek=xxxx&appkey=xxxx&white=Your IP
Example:Direct download Problems?ipideaproxy@gmail.com
example:
// demo.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "curl/curl.h"
#pragma comment(lib, "libcurl.lib")
static size_t write_buff_data(char *buffer, size_t size, size_t nitems, void *outstream)
{
	memcpy(outstream, buffer, nitems*size);
	return nitems*size;
}
/*
Use 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://Test IP:port");
		curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)buff);
		curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_buff_data);
		curl_easy_setopt(curl, CURLOPT_URL, url);
		curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, 10L);
		curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, 50L);
		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("assistant"), MB_ICONINFORMATION | MB_YESNO);
		}
	}
	return res;
}
/*
Using Socks5 proxy
*/
int GetUrlSocks5(char *url, char *buff)
{
	CURL *curl;
	CURLcode res;
	curl = curl_easy_init();
	if (curl)
	{
		curl_easy_setopt(curl, CURLOPT_PROXY, "socks5://Test IP:port");
		curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)buff);
		curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_buff_data);
		curl_easy_setopt(curl, CURLOPT_URL, url);
		curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, 10L);
		curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, 50L);
		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("assistant"), MB_ICONINFORMATION | MB_YESNO);
		}
	}
	return res;
}
int GetUrl(char *url, char *buff)
{
	CURL *curl;
	CURLcode res;
	curl = curl_easy_init();
	if (curl)
	{
		curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)buff);
		curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_buff_data);
		curl_easy_setopt(curl, CURLOPT_URL, url);
		curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, 10L);
		curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, 50L);
		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("assistant"), MB_ICONINFORMATION | MB_YESNO);
		}
	}
	return res;
}
int main()
{
	char *buff=(char*)malloc(1024*1024);
	memset(buff, 0, 1024 * 1024);
	GetUrl("http://baidu.com", buff);
	printf("Do not use proxy:%s\n", buff);
	memset(buff, 0, 1024 * 1024);
	GetUrlHTTP("http://baidu.com", buff);
	printf("HTTP result:%s\n", buff);
	memset(buff, 0,1024 * 1024);
	GetUrlSocks5("http://baidu.com", buff);
	printf("Socks5 results:%s\n", buff);
	Sleep(1000 * 1000);
	free(buff);
    return 0;
}
                 
              Example:Direct download Problems?ipideaproxy@gmail.com
Example:
// demo.cpp : Defines the entry point for the 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 the cache
	memcpy(outstream, buffer, nitems*size);
	return nitems*size;
}
/*
Use 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://Domain name: Port");//Set HTTP proxy address
		curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, "User name: password");//Proxy username password, with':'style username and password
		curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)buff);//Set Read-Write Cache
		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);//Sets a long integer to control how many seconds CURLOPT_LOW_SPEED_LIMIT bytes are passed
		curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, 50L);//Set a long integer to control how many bytes are transferred
		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("assistant"), MB_ICONINFORMATION | MB_YESNO);
		}
	}
	return res;
}
/*
Use Socks5 proxy
*/
int GetUrlSocks5(char *url, char *buff)
{
	CURL *curl;
	CURLcode res;
	curl = curl_easy_init();
	if (curl)
	{
		curl_easy_setopt(curl, CURLOPT_PROXY, "socks5://Domain name: port");//Set Socks5 proxy address
		curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, "User name: Password");//Proxy username password, with':'style username and password
		curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)buff);//Set Read-Write Cache
		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);//Sets a long integer to control how many seconds CURLOPT_LOW_SPEED_LIMIT bytes are passed
		curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, 50L);//Set a long integer to control how many bytes are transferred;
		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("assistant"), MB_ICONINFORMATION | MB_YESNO);
		}
	}
	return res;
}
/*
Do not use proxy
*/
int GetUrl(char *url, char *buff)
{
	CURL *curl;
	CURLcode res;
	//Initialize curl library using curl Library
	curl = curl_easy_init();
	if (curl)
	{
		curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void*)buff);//Set Read-Write Cache
		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);//Sets a long integer to control how many seconds CURLOPT_LOW_SPEED_LIMIT bytes are passed
		curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, 50L);//Set a long integer to control how many bytes are transferred
		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("assistant"), MB_ICONINFORMATION | MB_YESNO);
		}
	}
	return res;
}
int main()
{
	char *buff=(char*)malloc(1024*1024);
	memset(buff, 0, 1024 * 1024);
	//Do not use HTTP proxy
	GetUrl("http://myip.top", buff);
	printf("Do not use proxy:%s\n", buff);
	//Use HTTP proxy
	memset(buff, 0, 1024 * 1024);
	GetUrlHTTP("http://ipinfo.io", buff);
	printf("Http results:%s\n", buff);
	//Use Socks5 proxy
	memset(buff, 0,1024 * 1024);
	GetUrlSocks5("http://ipinfo.io", buff);
	printf("Socks5 result:%s\n", buff);
	Sleep(1000 * 1000);
	free(buff);
    return 0;
}
                 
              Example:Direct download Problems?ipideaproxy@gmail.com
Example:
            
package main
import (
	"context"
	"fmt"
	"golang.org/x/net/proxy"
	"io/ioutil"
	"net"
	"net/http"
	"net/url"
	"strings"
	"time"
)
var testApi = "https://api.myip.la/en?json"
func main() {
	getMyIp()
	//White List Agent
	var proxyIP = "ip:port"
	go httpProxy(proxyIP, "", "")
	go Socks5Proxy(proxyIP, "", "")
	time.Sleep(time.Minute)
}
func getMyIp() {
	rsp, err := http.Get("https://api.myip.la/en?json")
	if err != nil {
		fmt.Println("Failed to get native IP", err.Error())
		return
	}
	defer rsp.Body.Close()
	body, err := ioutil.ReadAll(rsp.Body)
	if err != nil {
		fmt.Println(err.Error())
		return
	}
	fmt.Println(time.Now().Format("2006-01-02 15:04:05 07"), "local ip:", string(body))
}
//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", "Return information:", 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】", "Return information:", response.Status, string(body))
	return
}
//Socks5 proxy
func Socks5Proxy(proxyUrl, user, pass string) {
	defer func() {
		if err := recover(); err != nil {
			fmt.Println(time.Now().Format("2006-01-02 15:04:05 07"), proxyUrl, "Return information:", err)
		}
	}()
	var userAuth proxy.Auth
	if user != "" && pass != "" {
		userAuth.User = user
		userAuth.Password = pass
	}
	dialer, err := proxy.SOCKS5("tcp", proxyUrl, &userAuth, proxy.Direct)
	if err != nil {
		panic(err)
	}
	httpClient := &http.Client{
		Transport: &http.Transport{
			DialContext: func(ctx context.Context, network, addr string) (conn net.Conn, err error) {
				return dialer.Dial(network, addr)
			},
		},
		Timeout: time.Second * 10,
	}
	//Request Network
	if resp, err := httpClient.Get(testApi); err != nil {
		panic(err)
	} else {
		defer resp.Body.Close()
		body, _ := ioutil.ReadAll(resp.Body)
		fmt.Println(time.Now().Format("2006-01-02 15:04:05 07"), proxyUrl, "【socks5 success】", "Return information:", string(body))
	}
}
                 
              Example:Direct download Problems?ipideaproxy@gmail.com
Example:
            
package main
import (
	"context"
	"fmt"
	"golang.org/x/net/proxy"
	"io/ioutil"
	"net"
	"net/http"
	"net/url"
	"strings"
	"time"
)
var testApi = "https://api.myip.la/en?json"
func main() {
	getMyIp()
	//Accounts
	go httpProxy("ip:port", "account", "Password")
	go Socks5Proxy("ip:port", "account", "Password")
	time.Sleep(time.Minute)
}
func getMyIp() {
	rsp, err := http.Get("https://api.myip.la/en?json")
	if err != nil {
		fmt.Println("Failed to get native IP", err.Error())
		return
	}
	defer rsp.Body.Close()
	body, err := ioutil.ReadAll(rsp.Body)
	if err != nil {
		fmt.Println(err.Error())
		return
	}
	fmt.Println(time.Now().Format("2006-01-02 15:04:05 07"), "local ip:", string(body))
}
//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", "Return information:", 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】", "Return information:", response.Status, string(body))
	return
}
//Socks5 proxy
func Socks5Proxy(proxyUrl, user, pass string) {
	defer func() {
		if err := recover(); err != nil {
			fmt.Println(time.Now().Format("2006-01-02 15:04:05 07"), proxyUrl, "Return information:", err)
		}
	}()
	var userAuth proxy.Auth
	if user != "" && pass != "" {
		userAuth.User = user
		userAuth.Password = pass
	}
	dialer, err := proxy.SOCKS5("tcp", proxyUrl, &userAuth, proxy.Direct)
	if err != nil {
		panic(err)
	}
	httpClient := &http.Client{
		Transport: &http.Transport{
			DialContext: func(ctx context.Context, network, addr string) (conn net.Conn, err error) {
				return dialer.Dial(network, addr)
			},
		},
		Timeout: time.Second * 10,
	}
	//Request Network
	if resp, err := httpClient.Get(testApi); err != nil {
		panic(err)
	} else {
		defer resp.Body.Close()
		body, _ := ioutil.ReadAll(resp.Body)
		fmt.Println(time.Now().Format("2006-01-02 15:04:05 07"), proxyUrl, "【socks5 success】", "Return information:", string(body))
	}
}
                 
              Example:Direct download Problems?ipideaproxy@gmail.com
Example:
            
<?php
	// Target page to visit
	$targetUrl = "http://baidu.com";
	// proxy server
	$proxyServer = "http://{{ip}}:{{domain}}";
	// Tunnel Identity Information
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $targetUrl);
	curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, false);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	// Setting up a 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);
	$result = curl_exec($ch);
	$err = curl_error($ch);
	curl_close($ch);
	var_dump($err);
	var_dump($result);
                 
              Example:Direct download Problems?ipideaproxy@gmail.com
Example:
            
<?php
	// Target page to visit
	$targetUrl = "http://baidu.com";
	// proxy server
	$proxyServer = "http://proxy.ipidea.io:2333";
	$proxyUserPwd = "{{user}}:{{psswd}}";
	// Tunnel Identity Information
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $targetUrl);
	curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, false);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	// Setting up a 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);
                 
              Example:Direct download Problems?ipideaproxy@gmail.com
Example:
            
#!/usr/bin/env node
require('request-promise')({
    url: 'https://ipinfo.io',
    proxy: 'http://ip:port',
    })
.then(function(data){ console.log(data); },
    function(err){ console.error(err); });
                 
              Example:Direct download Problems?ipideaproxy@gmail.com
Example:
            
#!/usr/bin/env node
require('request-promise')({
    url: 'https://ipinfo.io',
    proxy: 'http://???-zone-custom:????@proxy.ipidea.io:2333',
    })
.then(function(data){ console.log(data); },
    function(err){ console.error(err); });
                 
              Example:Direct download Problems?ipideaproxy@gmail.com
Example:
            
package demo;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Proxy;
/**
 * compile 'com.squareup.okhttp3:okhttp:3.10.0'
 */
class ApiProxyJava {
    public static void main(String[] args) throws IOException {
        testHttpWithOkHttp();
        testSocks5WithOkHttp();
    }
    public static void testHttpWithOkHttp() throws IOException {
        String url = "http://api.myip.la/en?json";
        Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("ip", 2000));
        OkHttpClient client = new OkHttpClient().newBuilder().proxy(proxy).build();
        Request request = new Request.Builder().url(url).build();
        okhttp3.Response response = client.newCall(request).execute();
        String responseString = response.body().string();
        System.out.println(responseString);
    }
    public static void testSocks5WithOkHttp() throws IOException {
        String url = "http://api.myip.la/en?json";
        Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("ip", 8080));
        OkHttpClient client = new OkHttpClient().newBuilder().proxy(proxy).build();
        Request request = new Request.Builder().url(url).build();
        okhttp3.Response response = client.newCall(request).execute();
        String responseString = response.body().string();
        System.out.println(responseString);
    }
}
                 
              Example:Direct download Problems?ipideaproxy@gmail.com
Example:
            
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:3.10.0'
 */
class AutProxyJava {
    public static void main(String[] args) throws IOException {
        testWithOkHttp();
        testSocks5WithOkHttp();
    }
    public static void testWithOkHttp() throws IOException {
        String url = "https://api.myip.la/en?json";
        Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("Proxy Address", 8080));
        OkHttpClient client = new OkHttpClient().newBuilder().proxy(proxy).proxyAuthenticator((route, response) -> {
            String credential = Credentials.basic("account", "Password");
            return response.request().newBuilder()
                    .header("Proxy-Authorization", credential)
                    .build();
        }).build();
        Request request = new Request.Builder().url(url).build();
        okhttp3.Response response = client.newCall(request).execute();
        String responseString = response.body().string();
        System.out.println(responseString);
    }
    public static void testSocks5WithOkHttp() throws IOException {
        String url = "https://api.myip.la/en?json";
        Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("Proxy Address", 8080));
        java.net.Authenticator.setDefault(new java.net.Authenticator() {
            private PasswordAuthentication authentication =
                    new PasswordAuthentication("account", "Password".toCharArray());
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return authentication;
            }
        });
        OkHttpClient client = new OkHttpClient().newBuilder().proxy(proxy).build();
        Request request = new Request.Builder().url(url).build();
        okhttp3.Response response = client.newCall(request).execute();
        String responseString = response.body().string();
        System.out.println(responseString);
    }
}
                 
              Example:Direct download Problems?ipideaproxy@gmail.com
Example:
            
# coding=utf-8
# !/usr/bin/env python
import json
import threading
import time
import requests as rq
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
    "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
    "Accept-Encoding": "gzip, deflate, br"
}
testUrl = 'https://api.myip.la/en?json'
# core business
def testPost(host, port):
    proxies = {
        'http': 'http://{}:{}'.format(host, port),
        'https': 'http://{}:{}'.format(host, port),
    }
    res = ""
    while True:
        try:
            res = rq.get(testUrl, proxies=proxies, timeout=5)
            # print(res.status_code)
            print(res.status_code, "***", res.text)
            break
        except Exception as e:
            print(e)
            break
    return
class ThreadFactory(threading.Thread):
    def __init__(self, host, port):
        threading.Thread.__init__(self)
        self.host = host
        self.port = port
    def run(self):
        testPost(self.host, self.port)
# Extract Proxy Links  Return value of type JSON
tiqu = 'Extract Links'
while 1 == 1:
    # Extract 10 at a time and put them in a thread
    resp = rq.get(url=tiqu, timeout=5)
    try:
        if resp.status_code == 200:
            dataBean = json.loads(resp.text)
        else:
            print("Get Failed")
            time.sleep(1)
            continue
    except ValueError:
        print("Get Failed")
        time.sleep(1)
        continue
    else:
        # Parsing JSON arrays
        print("code=", dataBean["code"])
        code = dataBean["code"]
        if code == 0:
            threads = []
            for proxy in dataBean["data"]:
                threads.append(ThreadFactory(proxy["ip"], proxy["port"]))
            for t in threads:  # Open Thread
                t.start()
                time.sleep(0.01)
            for t in threads:  # Blocking Threads
                t.join()
    # break
    time.sleep(1)
                 
              Example:Direct download Problems?ipideaproxy@gmail.com
Example:
            
import _thread
import time
import requests
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",
}
mainUrl = 'https://api.myip.la/en?json'
def testUrl():
    # Accounts
    entry = 'http://{}:{}@ip:port'.format("account", "Password")
    proxy = {
        'http': entry,
        'https': entry,
    }
    try:
        res = requests.post(mainUrl, headers=headers, proxies=proxy, timeout=10)
        print(res.status_code, res.text)
    except Exception as e:
        print("Access Failure", e)
        pass
for port in range(0, 10):
    _thread.start_new_thread(testUrl, ())
    time.sleep(0.1)
time.sleep(10)
                 
              Example:Direct download Problems?ipideaproxy@gmail.com
Example:
            
Python selenium http/socks5:
#coding=utf-8
from selenium import webdriver
# proxy server
proxyHost = "ip"
proxyPort = "port"
proxyType='http' #socks5
# Proxy Tunnel Verification Information
service_args = [
    "--proxy-type=%s" % proxyType,
    "--proxy=%(host)s:%(port)s" % {
        "host" : proxyHost,
        "port" : proxyPort,
    }
    ]
# Target page to visit
targetUrl = "http://baidu.com"
driver = webdriver.PhantomJS(service_args=service_args)
driver.get(targetUrl)
print driver.title
print driver.page_source.encode("utf-8")
driver.quit()
                 
                           
[account]-zone-custom:[password]
 Example:
# Mixed dialing One change at a time
curl -x proxy.ipidea.io:2333 -U "[account]-zone-custom:[password]" myip.top
            
                    
[account]-zone-custom-region-kr:[password]
region-kr South Korea
region-us U.S.A
region-jp Japan
region-gb britain
Example:
# South Korea
curl -x proxy.ipidea.io:2333 -U "[account]-zone-custom-region-kr:[password]" myip.top
            
                    
Used to specify that you want to fix an exit IP for a period of time, without specifying the default of 5 minutes
[account]-zone-custom-region-kr-session-b5b36885cad:[password]
Example:
 # South Korea Fixed exit IP
curl -x proxy.ipidea.io:2333 -U "[account]-zone-custom-region-kr-session-b5b36885cad:[password]" myip.top
            
                    
Used with session to specify a fixed exit IP lifetime
[account]-zone-custom-region-kr-session-b5b36885cad-sessTime-20:[password]
sessTime-5 5minute
sessTime-10 10minute
sessTime-30 30minute
Example:
# South Korea Fixed exit IP Survived for 20 minutes
curl -x proxy.ipidea.io:2333 -U "[account]-zone-custom-region-kr-session-b5b36885cad-sessTime-20:[password]" myip.top
            
            
        
 With our data collection infrastructure, IP restrictions and CAPTCHAs will not limit your free web crawling.
Contact Us: ipideaproxy@gmail.com