Rotate IPs

  1. Home
  2. Do-It-Yourself
  3. Rotate IPs

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()))
}