!C99Shell v. 1.0 pre-release build #13!

Software: Apache. PHP/5.5.15 

uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 

SYSTEM 

Safe-mode: OFF (not secure)

E:\nuevo\php\pear\Net\   drwxrwxrwx
Free 1.19 GB of 239.26 GB (0.5%)
Detected drives: [ a ] [ c ] [ d ] [ e ] [ f ]
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     Whois.php (13.02 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * Whois.php
 *
 * PHP Version 4 and 5
 *
 * Copyright (c) 1997-2003 The PHP Group
 * Portions Copyright (c) 1980, 1993 The Regents of the University of
 *   California.  All rights reserved.
 *
 * This source file is subject to version 3.01 of the PHP license,
 * that is bundled with this package in the file LICENSE, and is
 * available at through the world-wide-web at
 * http://www.php.net/license/3_01.txt.
 * If you did not receive a copy of the PHP license and are unable to
 * obtain it through the world-wide-web, please send a note to
 * license@php.net so we can mail you a copy immediately.
 *
 * @category  Net
 * @package   Net_Whois
 * @author    Seamus Venasse <seamus.venasse@polaris.ca>
 * @copyright 1997-2003 The PHP Group
 * @copyright 1980-1993 The Regents of the University of California (Portions)
 * @license   http://www.php.net/license/3_01.txt PHP 3.01
 * @version   CVS: $Id: Whois.php 314693 2011-08-10 00:31:45Z kguest $
 * @link      http://pear.php.net/package/Net_Whois
 */

require_once 'PEAR.php';

/**
 * Looks up records in the databases maintained by several Network Information
 * Centres (NICs).  This class uses PEAR's Net_Socket:: class.
 *
 * @category Net
 * @package  Net_Whois
 * @author   Seamus Venasse <seamus.venasse@polaris.ca>
 * @license  http://www.php.net/license/3_01.txt PHP 3.01
 * @link     http://pear.php.net/package/Net_Whois
 */
class Net_Whois extends PEAR
{

    
// {{{ properties

    /**
     * Retrieve authoritative definition only
     *
     * @var boolean
     * @access public
     */
    
var $authoritative false;

    
/**
     * Port for whois servers
     *
     * @var int
     * @access public
     */
    
var $port 43;

    
/**
     * See options for stream_context_create.
     *
     * @param array
     * @access public
     */
    
var $options null;

    
/**
     * List of NICs to query
     *
     * @var array
     * @access private
     */
    
var $_nicServers = array (
        
'NICHOST'           => 'whois.crsnic.net.',
        
'INICHOST'          => 'whois.networksolutions.com.',
        
'GNICHOST'          => 'whois.nic.gov.',
        
'ANICHOST'          => 'whois.arin.net.',
        
'RNICHOST'          => 'whois.ripe.net.',
        
'PNICHOST'          => 'whois.apnic.net.',
        
'RUNICHOST'         => 'whois.ripn.net.',
        
'MNICHOST'          => 'whois.ra.net.',
        
'QNICHOST_TAIL'     => '.whois-servers.net.',
        
'SNICHOST'          => 'whois.6bone.net.',
        
'BNICHOST'          => 'whois.registro.br.'
    
);

    
/**
     * Search string of server to search on
     *
     * @var string
     * @access private
     */
    
var $_whoisServerID 'Whois Server: ';

    
/**
     * Server to search for IP address lookups
     *
     * @var array
     * @access private
     */
    
var $_ipNicServers = array ('RNICHOST''PNICHOST''BNICHOST');

    
/**
     * List of error codes and text
     *
     * @var array
     * @access private
     */
    
var $_errorCodes = array (
        
010 => 'Unable to create a socket object',
        
011 => 'Unable to open socket',
        
012 => 'Write to socket failed',
        
013 => 'Read from socket failed',
        
014 => 'Specified server is null or empty',
    );

    
/**
     * Number of seconds to wait on socket connections before assuming
     * there's no more data from the Whois server. Defaults to no timeout.
     * @var integer $timeout
     * @access private
     */
    
var $_timeout false;
    
// }}}

    // {{{ constructor
    /**
     * Constructs a new Net_Whois object
     *
     * @access public
     */
    
function Net_Whois()
    {
        
$this->PEAR();

        
$this->setPort();
        
$this->setAuthoritative();
        
$this->setTimeout();
    }
    
// }}}

    // {{{ setTimeout()
    /**
     * Set timeout value - number of seconds afterwhich an attempt to connect
     * to a whois server should be aborted.
     *
     * @param integer $timeout false is also an acceptable value
     *
     * @access public
     * @return void
     */
    
function setTimeout($timeout false)
    {
        
$this->_timeout $timeout;
    }
    
// }}}

    // {{{ getTimeout()
    /**
     * Retrieve timeout value
     *
     * @access public
     *
     * @return mixed either false or an integer value
     */
    
function getTimeout()
    {
        return 
$this->_timeout;
    }
    
// }}}

    // {{{ setTimeout()
    /**
     * setAuthoritative
     *
     * @param bool $authoritative defaults to false
     *
     * @access public
     * @return void
     */
    
function setAuthoritative($authoritative false)
    {
        
$this->authoritative $authoritative;
    }
    
// }}}

    // {{{ getAuthoritative()
    /**
     * getAuthoritative
     *
     * @return bool Query for authoritative result?
     */
    
function getAuthoritative()
    {
        return (bool) 
$this->authoritative;
    }
    
// }}}


    /**
     * set which port should be used
     *
     * @param integer $port Port to use
     *
     * @access public
     * @return void
     */
    
function setPort($port false)
    {
        
$port is_numeric($port) ? $port getservbyname('whois''tcp');
        
$this->port $port $port 43;
    }
    
// }}}

    // {{{ getPort()
    /**
     * Retrieve which port to connect to.
     *
     * @return integer port to connect to
     */
    
function getPort()
    {
        return 
$this->port;
    }
    
// }}}

    /**
     * setOptions
     *
     * @param mixed $options
     * @return void
     */
    
function setOptions($options)
    {
        if ((!
is_null($options)) && (!is_array($options))) {
            return;
        }
        
$this->options $options;
    }

    
// {{{ getOptions()
    /**
     * Retrieve which port to connect to.
     *
     * @return array
     */
    
function getOptions()
    {
        return 
$this->options;
    }
    
// }}}

    // {{{ query()
    /**
     * Connect to the necessary servers to perform a domain whois query.  Prefix
     * queries with a "!" to lookup information in InterNIC handle database.
     * Add a "-arin" suffix to queries to lookup information in ARIN handle
     * database.
     *
     * @param string $domain          IP address or host name
     * @param string $userWhoisServer server to query (optional)
     *
     * @access public
     * @return mixed returns a PEAR_Error on failure, or a string on success
     */
    
function query($domain$userWhoisServer null)
    {
        
$domain trim($domain);

        if (isset(
$userWhoisServer)) {
            
$whoisServer $userWhoisServer;
        } elseif (
preg_match('/^!.*/'$domain)) {
            
$whoisServer $this->_nicServers['INICHOST'];
        } elseif (
preg_match('/.*?-arin/i'$domain)) {
            
$whoisServer $this->_nicServers['ANICHOST'];
        } else {
            
$whoisServer $this->_chooseServer($domain);
        }

        
$_domain $this->authoritative 'domain ' $domain $domain;
        
$whoisData $this->_connect($whoisServer$_domain);

        if (
PEAR::isError($whoisData)) {
            return 
$whoisData;
        }

        if (
$this->authoritative) {
            
$pattern '/\s+' preg_quote($this->_whoisServerID) . '(.+?)\n/i';

            if (
preg_match($pattern$whoisData$matches)) {
                
$whoisData $this->_connect(trim(array_pop($matches)), $domain);
            }
        }
        return 
$whoisData;
    }
    
// }}}

    // {{{ queryAPNIC()
    /**
     * Use the Asia/Pacific Network Information Center (APNIC) database.
     * It contains network numbers used in East Asia, Australia, New
     * Zealand, and the Pacific islands.
     *
     * @param string $domain IP address or host name
     *
     * @access public
     * @return mixed returns a PEAR_Error on failure, or a string on success
     */
    
function queryAPNIC($domain)
    {
        return 
$this->query($domain$this->_nicServers['PNICHOST']);
    }
    
// }}}

    // {{{ queryIPv6()
    /**
     * Use the IPv6 Resource Center (6bone) database.  It contains network
     * names and addresses for the IPv6 network.
     *
     * @param string $domain IP address or host name
     *
     * @access public
     * @return mixed returns a PEAR_Error on failure, or a string on success
     */
    
function queryIPv6($domain)
    {
        return 
$this->query($domain$this->_nicServers['SNICHOST']);
    }
    
// }}}

    // {{{ queryRADB()
    /**
     * Use the Route Arbiter Database (RADB) database.  It contains
     * route policy specifications for a large number of operators'
     * networks.
     *
     * @param string $ipAddress IP address
     *
     * @access public
     * @return mixed returns a PEAR_Error on failure, or a string on success
     */
    
function queryRADB($ipAddress)
    {
        return 
$this->query($ipAddress$this->_nicServers['MNICHOST']);
    }
    
// }}}

    // {{{ _chooseServer()
    /**
     * Determines the correct server to connect to based upon the domain
     *
     * @param string $query IP address or host name
     *
     * @access private
     * @return string whois server host name
     */
    
function _chooseServer($query)
    {
        if (!
strpos($query'.')) {
            return 
$this->_nicServers['NICHOST'];
        }

        
$TLD substr($querystrrpos($query'.') + 1);

        if (
is_numeric($TLD)) {
            
$whoisServer $this->_nicServers['ANICHOST'];
        } else {
            
$whoisServer $this->getDomainServer($query);
        }

        return 
$whoisServer;
    }
    
// }}}

    // {{{ getDomainServer()
    /**
     * Determines the correct whois server to connect to based upon the domain
     *
     * @param string $q domain name
     *
     * @access public
     * @return string whois server ip address
     */
    
function getDomainServer($q)
    {
        
$tail $this->_nicServers['QNICHOST_TAIL'];
        if (
strchr($q'.')) {
            
//get the last 2 parts
            
$q array_reverse(explode('.'$q));
            
$a = array($q[1] . '.' $q[0], $q[0]);
        } else {
            
$a = array($q);
        }
        foreach (
$a as $q) {
            
//check host has real ip
            
$q gethostbyname($q $tail);
            if (
filter_var($qFILTER_VALIDATE_IP)) {
                return 
$q;
            }
        }
    }
    
// }}}

    // {{{ _connect()
    /**
     * Connects to the whois server and retrieves domain information
     *
     * @param string $nicServer FQDN of whois server to query
     * @param string $domain    Domain name to query
     *
     * @access private
     * @return mixed returns a PEAR_Error on failure, string of whois data on success
     */
    
function _connect($nicServer$domain)
    {
        include_once 
'Net/Socket.php';

        if (
is_null($nicServer) || (empty($nicServer))) {
            return new 
PEAR_Error($this->_errorCodes[014], 14);
        }

        if (
PEAR::isError($socket = new Net_Socket())) {
            return new 
PEAR_Error($this->_errorCodes[010], 10);
        }

        
$result $socket->connect(
            
$nicServer,
            
$this->getPort(),
            
null,
            
$this->getTimeout(),
            
$this->getOptions()
        );
        if (
PEAR::isError($result)) {
            return new 
PEAR_Error($this->_errorCodes[011], 11);
        }
        
$socket->setBlocking(false);
        
// Querying denic.de requires some special coaxing for a domain query.
        // http://www.denic.de/en/faq-single/2978/1115.html
        
if (substr($domain, -3) == '.de') {
            if (
PEAR::isError($socket->writeLine("-T dn,ace " $domain))) {
                return new 
PEAR_Error($this->_errorCodes[012], 12);
            }
        } else {

            if (
PEAR::isError($socket->writeLine($domain))) {
                return new 
PEAR_Error($this->_errorCodes[012], 12);
            }
        }

        
$nHost null;

        
$whoisData $socket->readAll();
        if (
PEAR::isError($whoisData)) {
            return new 
PEAR_Error($this->_errorCodes[013], 13);
        }

        
$data explode("\n"$whoisData);
        foreach (
$data as $line) {
            
$line rtrim($line);

            
// check for whois server redirection
            
if (!isset($nHost)) {
                
$pattern='/'.$this->_whoisServerID.'([a-z0-9.]+)\n/i';
                if (
preg_match($pattern$line$matches)) {
                    
$nHost $matches[1];
                } elseif (
$nicServer == $this->_nicServers['ANICHOST']) {
                    foreach (
$this->_ipNicServers as $ipNicServer) {
                        
$server trim($this->_nicServers[$ipNicServer], '.');
                        if (
strstr($line$server)) {
                            
$nHost $this->_nicServers[$ipNicServer];
                        }
                    }
                }
            }
        }

        
// this should fail, but we'll call it anyway and ignore the error
        
$socket->disconnect();

        if (
$nHost && $nHost != $nicServer) {
            
$tmpBuffer $this->_connect($nHost$domain);
            if (
PEAR::isError($tmpBuffer)) {
                return 
$tmpBuffer;
            }
            
$whoisData .= $tmpBuffer;
        }

        return 
$whoisData;
    }
    
// }}}
}
?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0312 ]--