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

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


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

  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

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

  6. Դոմենի WhoIs տվյալների ստացումը PHP-ով « Համելտ Մուրադյան said,

    Ноябрь 20, 2010 @ 19:11

    […] <?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 ”Դոմեն՝ $domainn”; print ”Whois սերվեր՝ $servern”; print ”Ժամկետն ավարտվում է՝ $expiryn”; print ”Մնացել է՝ $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, ”$domainrn”);    while (!feof($fp))     $response .= fread($fp,128);    fclose ($fp);    } } return $response; } ?> WhoIs սկրիպտը՝ turenko.com կայքի համար […]

  7. Изготовление сайтов | Записная книжка Studio ELPH » Архив блога » Получение whois-данных домена на PHP said,

    Август 27, 2011 @ 10:14

    […] <?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: $domainn”; print ”Whois server: $servern”; print ”Expires: $expiryn”; print ”Days left: $expdaysn”; 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, ”$domainrn”);    while (!feof($fp))     $response .= fread($fp,128);    fclose ($fp);    } } return $response; } ?> Оставить комментарий […]

RSS feed for comments on this post · TrackBack URI.

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