Cách lấy thông tin tên miền (Whois) bằng PHP

Nếu bạn thường xuyên mua tên miền thì ắt hẳn là thường xuyên phải check xem liệu tên miền đó đã được mua hay chưa, hoặc đơn giản là muốn biết thông tin người sở hữu tên miền đó. Hôm nay, trong bài viết này, mình sẽ chia sẻ cho các bạn một đoạn code bằng PHP giúp các bạn tạo chức năng này mà không cần phải thông qua bất kì trang web nào.

code Snipppets, domain, php code, whois, php

PHP

Các bạn copy đoạn code sau đây :

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:

    //

    // http://de.wikipedia.org/wiki/Whois

    //

    $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;

}

Một vài ví dụ sử dụng function bên trên :

print whois_query('jonasjohn.de');

print whois_query('example.com');

print whois_query('example.org');

Mình hy vọng qua bài viết này , các bạn sẽ có thêm một kinh nghiệp trong quá trình học lập trình với ngôn ngữ PHP.

 

 HỖ TRỢ TRỰC TUYẾN