The IP of the the request is instantly available through server variables and the throttle check is actually done after we sanitize variables. However, there is not a built in way to give certain IPs a pass. If you want to hack the files, here it is:
Open up core.system.php and find this:
if ($PREFS->ini('enable_throttling') == 'y' AND REQ == 'PAGE')
{
require PATH_CORE.'core.throttling'.EXT;
$THR = new Throttling();
$THR->throttle_ip_check();
$THR->throttle_check();
$THR->throttle_update();
}
What we are going to do is create an array of IP addresses and if an IP is not found in that array, then it does the throttle check:
if ($PREFS->ini('enable_throttling') == 'y' AND REQ == 'PAGE')
{
// GoogleBot (range), MSNBot (full IP)
$pass = array('66.249.71.', '65.54.188.83');
$skip = 'n';
foreach($pass as $value)
{
if (strstr($IN->IP, $value))
{
$skip = 'y';
}
}
if ($skip == 'n')
{
require PATH_CORE.'core.throttling'.EXT;
$THR = new Throttling();
$THR->throttle_ip_check();
$THR->throttle_check();
$THR->throttle_update();
}
}