Return to Snippet

Revision: 72155
at May 22, 2017 18:16 by apphp-snippets


Updated Code
<?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:
    //
    // 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;
}
?>

Revision: 72154
at May 22, 2017 18:15 by apphp-snippets


Initial Code
<?php
    /**
     * Calculate the full size of a directory
     * @param string $DirectoryPath Directory path
     */
    function CalcDirectorySize($DirectoryPath) {
        // I reccomend using a normalize_path function here
        // to make sure $DirectoryPath contains an ending slash
        // To display a good looking size you can use a readable_filesize
        // function.
        $Size = 0;
        $Dir = opendir($DirectoryPath);
        if (!$Dir) return -1;
        while (($File = readdir($Dir)) !== false) {
            // Skip file pointers
            if ($File[0] == ) continue;
            // Go recursive down, or add the file size
            if (is_dir($DirectoryPath . $File)) {
                $Size += CalcDirectorySize($DirectoryPath . $File . DIRECTORY_SEPARATOR);
            }
            else {
                $Size += filesize($DirectoryPath . $File);
            }
        }
        closedir($Dir);
        return $Size;
    }
    ?>

Initial URL
www.apphp.com/index.php?snippet=php-whois-query

Initial Description
This code allows to perform a query to WhoIs service in PHP.

Initial Title
WhoIs Query in PHP

Initial Tags
php

Initial Language
PHP