domain = $domain; } function getServer() { if (strpos($this->domain, '.') === false) { trigger_error('No Top Level Domain was specified in '.$this->domain); return false; } $tlds = explode('.', $this->domain); $tld = $tlds[count($tlds) - 1]; $where = 'WHERE tld="'.$tld.'"'; $fitMap = array($tld => 0); for ($i = count($tlds) - 2; $i > 0; $i--) { $tld = $tlds[$i].'.'.$tld; $fitMap[$tld] = count($tlds) - 1 - $i; $where .= ' OR tld="'.$tld.'"'; } $query = 'SELECT tld, server, string FROM tld INNER JOIN tld_server USING(tld_id) INNER JOIN server USING(server_id) '.$where.' GROUP BY tld'; if (!($result = mysql_query($query)) || mysql_num_rows($result) == 0) { trigger_error('There is no Whois Server mapped to this Top Level Domain.'); return false; } $fit = -1; while ($row = mysql_fetch_assoc($result)) { if ($fitMap[$row['tld']] > $fit) { $fit = $fitMap[$row['tld']]; $server = $row; } } $this->server = $server['server']; $this->tld = $server['tld']; $this->string = $server['string']; return true; } function queryServer() { $request = &new Whois_Request($this->server); $result = $request->doRequest($this->domain); if (!$result) { return false; } $this->is_free = strpos(strtolower($result), $this->string) !== false; return true; } function is_free() { return $this->is_free; } } ?>