I don't know, I tried some of those IP listed at botscout and 90% of them were at SFS too. And 300 limit? That's not a really big one... Moreover instructions to installing extension would have to be like "Go there, get API key..." :-(
But if you would like keep trying, here's the code (I haven't tested it, but it should be fine)
<hook id="rg_start"><![CDATA[
if (file_exists($ext_info['path'].'/lang/'.$forum_user['language'].'/'.$ext_info['id'].'.php'))
require $ext_info['path'].'/lang/'.$forum_user['language'].'/'.$ext_info['id'].'.php';
else
require $ext_info['path'].'/lang/English/'.$ext_info['id'].'.php';
$ip = get_remote_address();
$query = array(
'SELECT' => 'ip',
'FROM' => 'botscout',
'WHERE' => 'ip = \''.$ip.'\'',
'LIMIT' => '1'
);
$result = $forum_db->query_build($query) or error(__FILE__, __LINE__);
if($forum_db->num_rows($result) > 0) {
message(sprintf($lang_botscout['Forbidden'], $ip));
} else {
$url = 'http://botscout.com/test/?ip='.$ip.'&key=xxxxxxx;
$remote_file = get_remote_file($url, 10);
if(strpos("limit reached", $remote_file)) {
//maybe we could log this somewhere? (email, maybe), but I don't think it's 'that' important
} else {
$array = explode('|', $remote_file);
if($array[0] != "Y") {
$query = array(
'INSERT' => 'ip, bot_visit, count',
'INTO' => 'botscout',
'VALUES' => '\''.$ip.'\', NOW(), \''.$array[2].'\''
);
$forum_db->query_build($query) or error(__FILE__, __LINE__);
message(sprintf($lang_botscout['Forbidden'], $ip));
}
}
}
]]></hook>
BTW, sorry about that url, it wasn't correct, it should be like in the code, so
?ip='.$ip.'&key=xxxxxxxx;