99.9% uptime
Used by millions of crawlers to crawl web pages
Everywhere
Select IPs from any country, city, ASN or carrier
10,000+
Used by more than 10,000 data professionals
24/7 Support
IT specialists are 24/7 availa -ble for technical support
60M+ Residential Proxy pool
60M+ IPs in 220+ worldwide regions. Boost your business with one of the most reliable proxy services on the market. With higher quality data, best network uptime, absolute accuracy.
Large-scaleweb crawling
With unlimited concurrent connection requests and unlimited bandwidth, we ensure your web crawlers run smoothly and efficiently. You can scale your web scraping in no time and without any hassle.
Trusted by Fortune 500 Companies
Collect data efficiently, IPIDEA offers companies on-demand data collection service and saves thousands of business cost. Assist top leading institutions in marketing campaign and conducting academic research.
Powerful Dashboard
Obtain and view information through the dashboard at any time. Perform traffic statistics, check balance, query transaction history, manage whitelists and authenticate accounts within one site.
Various common crawler programming language code samples and API parameter notes ensure that you can get started quickly with IPIDEA.Simply add
&account-zone-custom-region-us:password or
&sessTime-30 to custom IP geolocation, IP sticky sessions duration , and more.
API Mode
Proxy Mode
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;
}
//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))
}
#!/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); });
>?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);
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);
}
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 the link to the proxy Return value of json type
tiqu = 'Extract the link'
while 1 == 1:
# Extract 10 at a time and put them into the thread
resp = rq.get(url=tiqu, timeout=5)
try:
if resp.status_code == 200:
dataBean = json.loads(resp.text)
else:
print("failure")
time.sleep(1)
continue
except ValueError:
print("failure")
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 the thread
t.start()
time.sleep(0.01)
for t in threads: # Blocking threads
t.join()
# break
time.sleep(1)
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;
}
//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))
}
#!/usr/bin/env node
require('request-promise')({
url: 'https://ipinfo.io',
proxy: 'http://???-zone-custom:????@proxy.ipidea.io:4399',
})
.then(function(data){ console.log(data); },
function(err){ console.error(err); });
// Target page to visit
$targetUrl = "http://baidu.com";
// proxy server
$proxyServer = "http://proxy.ipidea.io:4399";
$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);
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);
}
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)
Brand Protection
Protect your brand and trademarks by monitoring websites.
LEARN MORE +Data Intelligence
Gather competitors' data, travel and research info without being blocked.
LEARN MORE +Ad Verification
Ensure integrity of ads on display. Eliminate fraud and error.
LEARN MORE +Crawling & Indexing
Break through limits on the number of requests and indexed pages.
LEARN MORE +Web Testing
Accurate testing starts with setting right parameters and environment.
LEARN MORE +Mail Protectionn
Encrypt data and use proxy to counter cyber attacks.
LEARN MORE +Stock Market Data
Get access to the latest stock market data on a large scale.
LEARN MORE +SEO Monitoring
Shift SEO strategy and boost your ranking by using real-time crawler.
LEARN MORE +This website uses cookies to improve the user experience.To learn more about our cookie policy or withdraw from it, please check our Privacy Policy and Cookie Policy