Получение whois-данных домена на PHP

Скрипт проверяет и выводит дату истечения срока регистрации домена, а также количество дней до окончания срока регистрации домена (только .com/.net/.org).

Данный пример демонстрирует следующие аспекты программирования на PHP: работа с сокетами, регулярными выражениями, файловые операции, операции с датой и временем.

// Пример получения whois-данных домена
// Источник: http://turenko.com/blog/2006/10/24/checking-whois-in-php/
// (c) Mikhail Turenko

// доменное имя (com, net, org)
$domain = "turenko.com";

// получаем whois-запись
$resp = get_whois($domain);

// извлекаем адрес whois-сервера
preg_match("!^\s*Whois Server:\s+([\w\.]+)\b!im", $resp, $matches);
$server = $matches[1];

// извлекаем дату истечения срока домена
preg_match("!^\s*Expiration Date:\s+([\w\-]+)\b!im", $resp, $matches);
$expiry = $matches[1];

// вычисляем количество дней до окончания срока
$exptime = strtotime($expiry);
$expdays = round(($exptime - time()) / 84600);

$expiry = date("d/m/Y", $exptime);

print "Domain: $domain\n";
print "Whois server: $server\n";
print "Expires: $expiry\n";
print "Days left: $expdays\n";

function get_whois($domain, $server="whois.verisign-grs.com")
{
if (trim($domain) <> "")
{
$domain = trim($domain);
$fp = fsockopen($server, 43, $errno, $errstr, 30);
if (!$fp) $response = "$errstr ($errno)";
else{
   $response = "";
   fputs($fp, "$domain\r\n");
   while (!feof($fp))
    $response .= fread($fp,128);
   fclose ($fp);
   }
}
return $response;
}

.