Пример получения 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;
}

?>

· Добавьте на news2.ru

Похожие записи:


5 Комментариев »

  1. Dennion said,

    Октябрь 25, 2006 @ 18:54

    Все понятно, но порт для конекта 43…..интернесно :)

  2. Mikhail said,

    Октябрь 26, 2006 @ 09:41

    2Dennion: порт 43 это стандартный порт whois.

  3. Dennion said,

    Октябрь 26, 2006 @ 14:05

    Век живи век учись…не знал :)

  4. SM said,

    Октябрь 27, 2006 @ 16:54

    на бан по ип пробовал? :) пару тысченок выдержит запросов? :)

  5. Владимир said,

    Декабрь 27, 2008 @ 14:08

    Спасибо, как раз для админки искал окончание срока домена

RSS feed for comments on this post · TrackBack URI.

Прокомментируйте