private static function install_spider($botname, $ips) { GWF_Numeric::setInputCharset('0123456789abcdef'); GWF_Numeric::setOutputCharset('0123456789'); $botname = '[' . $botname . ']'; if (false === ($user = GWF_User::getByName($botname))) { if (false === ($user = self::insert_bot($botname))) { return false; } } $uid = $user->getID(); $count = count($ips); echo "Installing Bot {$botname} (UID:{$uid}) with {$count} IPs...<br/>"; $ranged = array(); foreach ($ips as $i => $ip) { if (self::is_ip_range($ip)) { $ranged[] = self::get_ip_range($ip); unset($ips[$i]); } else { $ip6 = GWF_IP6::getIP(GWF_IP6::HEX_128, $ip); // var_dump($ip6); $ips[$i] = GWF_Numeric::baseConvert($ip6, 16, 10); } } // var_dump($ranged); echo '<br/>'; $ranged = self::merge_ranges($ranged); // var_dump($ranged); echo '<br/>'; sort($ips); foreach ($ips as $ip) { self::merge_into_ranges($ranged, $ip); } $ranged = self::merge_ranges($ranged); echo "Total Ranges: " . count($ranged) . ".<br/>"; GWF_Numeric::setInputCharset('0123456789'); GWF_Numeric::setOutputCharset('0123456789abcdef'); foreach ($ranged as $range) { list($min, $max) = $range; // echo "Insert range $min-$max<br/>"; if (false === GWF_Webspider::insertSpider($uid, self::convertToHex($min), self::convertToHex($max))) { echo GWF_HTML::err('ERR_DATABASE', __FILE__, __LINE__); } } // var_dump($ranged); }