Rotate IPs

From FoxyProxy Documentation
Revision as of 17:14, 7 February 2017 by Vadim (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

How to use a PAC file to automatically rotate IPs

We intend to add nice GUIs to the FoxyProxy addons for these features. For now, however, you can write a PAC script to do it. We can host this file for you at https://getfoxyproxy.org. If you use our proxy services, we can provide a hosted PAC script which rotates through a pool of our hostnames/IP addresses however you like (round-robin, random, etc). Please contact us for more details.

Round-robin rotate through X number of proxies

Switching for each URL requested


 var proxies = ["PROXY 123.123.123.123:9050", "PROXY 192.168.1.3:8080",
 "PROXY 108.54.23.11:6667", "PROXY 106.25.84.11:6667", "PROXY 143.51.88.76:6667"],
  counter = -1;

 function FindProxyForURL(url, host) {
   counter++;
   if (counter == proxies.length) counter = 0;
   return proxies[counter];
 }
 

Switching every Y seconds

  • The secondsToSwitchAfter variable controls how frequently the proxies should be rotated
 // PAC file to switch IP addresses every 3 seconds across 5 IP addresses

 var proxies = ["PROXY 123.123.123.123:9050", "PROXY 192.168.1.3:8080",
 "PROXY 108.54.23.11:6667", "PROXY 106.25.84.11:6667", "PROXY 143.51.88.76:6667"],
  t1 = new Date().getTime(), counter = 1;

 var secondsToSwitchAfter = 3;

 function FindProxyForURL(url, host) {
   var t2 = new Date().getTime();
   if (t2 - t1 > secondsToSwitchAfter * 1000)
     counter++;
   t1 = t2;
   return proxies[counter % proxies.length];
 }
 

Random selection

This PAC script randomly selects a proxy from a list. A proxy is randomly selected for each URL request.


 var proxies = ["PROXY 123.123.123.123:9050", "PROXY 192.168.1.3:8080",
 "PROXY 108.54.23.11:6667", "PROXY 106.25.84.11:6667", "PROXY 143.51.88.76:6667"];

 function FindProxyForURL(url, host) {
   return proxies[getRandomInt(0, proxies.length)];
 }

 function getRandomInt(firstIndex, lastIndex) {
   // Inclusive
   // Thanks, http://www.shawnolson.net/a/789/make_javascript_mathrandom_useful.html
   return firstIndex + (Math.floor((lastIndex - firstIndex + 1) * Math.random()))
 }