Пример Whois на PHP. Вариант 2.

Рабочий вариант с реализацией класса отдельно

<?
echo '<form name="site" method="GET" action="' . $_SERVER['PHP_SELF'] . '" style="margin-left: 45px; margin-top: 10px; font-family: cuprum; color: white; background-color: #000; padding: 5px;">';
echo 'Введите адрес сайта:  ';
echo '<input type="text" name="siteurl">';
echo '<input type="submit" style="margin-left: 5px;"></form>';
 
$submit=$_GET['siteurl'];
include("clsWhois.php");
if(isset($submit))
{
$whois = new Whois();
echo "<B>" . $submit . "</B><BR>";
echo $whois->lookup($submit);
echo "<HR>";
}
 
?>

Сам файл класса Whois:

<?
 
class Whois
{
	/*
	 * Optional parameter for the server to be used for the lookup.
	 * If this is not set, an appropriate whois server for the domain name
	 * specified is automagically found by the Whois class. 
	 * @type string
	 * @access public
	 */
	var $whois_server;
	/*
	 * The timeout, in seconds, for the lookup. Default is 30. 
	 * @type integer
	 * @access public
	 */
	var $timeout = 30;
 
	/*
	 * Returns a string, with new-lines (\n) converted to non-breaking spaces (&lt;BR&gt;),
	 * with details for the domain specified by $domain. 
	 * @access public
	 * @param string $domain the domain to lookup, excluding http:// and www
	 * @return string the results of the whois
	 */
	function lookup($domain)
	{
		$result = "";
		$parts  = array();
		$host   = "";
 
		// .tv don't allow access to their whois
		if (strstr($domain,".tv"))
		{
			$result = "'.tv' domain names require you to have an account to do whois searches.";
		// New domains fix (half work, half don't)
		} elseif (strstr($domain,".name") || strstr($domain,".pro") >0){
			$result = ".name,.pro require you to have an account to do whois searches.";
		} else{
			if (empty($this->whois_server))
			{
				$parts    = explode(".",$domain);
				$testhost = $parts[sizeof($parts)-1];
				$whoisserver   = $testhost . ".whois-servers.net";
				$this->host     = gethostbyname($whoisserver);
				$this->host     = gethostbyaddr($this->host);
 
				if ($this->host == $testhost)
				{
					$this->host = "whois.internic.net";
				}
				flush();
			}
			$whoisSocket = fsockopen($this->host,43, $errno, $errstr, $this->timeout);
 
			if ($whoisSocket)
			{
				fputs($whoisSocket, $domain."\015\012");
				while (!feof($whoisSocket))
				{
					$result .= fgets($whoisSocket,128) . "<br>";
				}
				fclose($whoisSocket);
			}
		}
		return $result;
	}
}
?>

Добавить комментарий