利用 PHP 获取 Whois 信息

作者:赵金添 分类: 发布于:2015-6-3 22:41 ė1148次浏览 60条评论
参考:http://www.csdn.net/article/2014-03-14/2818762-php-code-snippets-for-developers
预览:http://my.codelab.cn/2015-06-03/whois.php
Whoise 服务器查询:http://www.iana.org/whois

<?php
function whois_query($domain) {
  // fix the domain name:
  $domain = strtolower(trim($domain));
  $domain = preg_replace('/^http:\/\//i', '', $domain);
  $domain = preg_replace('/^www\./i', '', $domain);
  $domain = explode('/', $domain);
  $domain = trim($domain[0]);

  // split the TLD from domain name
  $_domain = explode('.', $domain);
  $lst = count($_domain) - 1;
  $ext = $_domain[$lst];

  // You find resources and lists
  // like these on wikipedia:
  //
  // <a href="http://de.wikipedia.org/wiki/Whois">http://de.wikipedia.org/wiki/Whois</a>
  //
  $servers = array(
      "biz" => "whois.neulevel.biz",
      "com" => "whois.internic.net",
      "us" => "whois.nic.us",
      "coop" => "whois.nic.coop",
      "info" => "whois.nic.info",
      "name" => "whois.nic.name",
      "net" => "whois.internic.net",
      "gov" => "whois.nic.gov",
      "edu" => "whois.internic.net",
      "mil" => "rs.internic.net",
      "int" => "whois.iana.org",
      "ac" => "whois.nic.ac",
      "ae" => "whois.uaenic.ae",
      "at" => "whois.ripe.net",
      "au" => "whois.aunic.net",
      "be" => "whois.dns.be",
      "bg" => "whois.ripe.net",
      "br" => "whois.registro.br",
      "bz" => "whois.belizenic.bz",
      "ca" => "whois.cira.ca",
      "cc" => "whois.nic.cc",
      "ch" => "whois.nic.ch",
      "cl" => "whois.nic.cl",
      "cn" => "whois.cnnic.net.cn",
      "cz" => "whois.nic.cz",
      "de" => "whois.nic.de",
      "fr" => "whois.nic.fr",
      "hu" => "whois.nic.hu",
      "ie" => "whois.domainregistry.ie",
      "il" => "whois.isoc.org.il",
      "in" => "whois.ncst.ernet.in",
      "ir" => "whois.nic.ir",
      "mc" => "whois.ripe.net",
      "to" => "whois.tonic.to",
      "tv" => "whois.tv",
      "ru" => "whois.ripn.net",
      "org" => "whois.pir.org",
      "aero" => "whois.information.aero",
      "nl" => "whois.domain-registry.nl"
  );

  if (!isset($servers[$ext])) {
    die('Error: No matching nic server found!');
  }

  $nic_server = $servers[$ext];

  $output = '';

  // connect to whois server:
  if ($conn = fsockopen($nic_server, 43)) {
    fputs($conn, $domain . "\r\n");
    while (!feof($conn)) {
      $output .= fgets($conn, 128);
    }
    fclose($conn);
  } else {
    die('Error: Could not connect to ' . $nic_server . '!');
  }

  return $output;
}

echo whois_query('ydbg.cn');
?>

本文出自 赵金添的前端博客@福州软件外包公司,转载时请注明出处及相应链接。

0
分享本文至:

发表评论

电子邮件地址不会被公开。必填项已用*标注


Ɣ回顶部