| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?php
- namespace MGModule\DNSManager2\mgLibs\custom\manager\additionalMethods;
- use \MGModule\DNSManager2 as main;
- use MGModule\DNSManager2\mgLibs\custom\dns\utils\IP;
- use MGModule\DNSManager2\mgLibs\custom\manager\ZoneCreator;
- use MGModule\DNSManager2\models\custom\zone\ZoneTypeEnum;
- class DefaultIPHelper
- {
- private $zone;
- private $item = false;
- private $package = false;
- private $zoneLinked;
- public function getDefaultIpBySpecificDomain($domain, $typeId){
- $ip = false;
- $checkIfServiceExist = main\mgLibs\MySQL\query::select(array('*'), 'tblhosting', array('domain' => $domain->domain, 'userid' => $domain->userid, 'domainstatus' => 'Active'))->fetchAll();
- $IPList = $this->makeIpList($checkIfServiceExist[0]['assignedips']);
- try
- {
- if(!empty($checkIfServiceExist) && $checkIfServiceExist[0]['server']){
- $dnsPackageId = $this->findDnsPackageByProductId($checkIfServiceExist[0]['packageid'], $typeId);
- $package = new main\models\custom\package\Package($dnsPackageId);
- $server = new main\models\whmcs\servers\server($checkIfServiceExist[0]['server']);
- $IPListPackages = $this->getPackageServerIPs($package->getServers());
- $ip = $this->getDefaultIp($checkIfServiceExist[0]['dedicatedip'], $IPList, $server->ip, $IPListPackages);
- } else {
- $simulateCreation = new ZoneCreator($domain->domain, ZoneTypeEnum::DOMAIN, $domain->id, false, $domain->clientID());
- if($simulateCreation->server)
- {
- $serverDefaultIP = unserialize($simulateCreation->server->getSettings('module_configuration'))['default_ip'];
- if (!empty($serverDefaultIP))
- $ip = $serverDefaultIP;
- }
- }
- }
- catch(\Exception $e)
- {
- logModuleCall(
- 'DNS Manager', __FUNCTION__, $e->getMessage(), $e->getTraceAsString()
- );
- return $ip;
- }
- return $ip;
- }
- private function findDnsPackageByProductId($productId, $typeId){
- $checkIfServiceExist = main\mgLibs\MySQL\query::select(array('packageid'), 'dns_manager2_packageitem', array('relid' => $productId, 'type' => $typeId))->fetchAll();
- return $checkIfServiceExist[0]['packageid'];
- }
- public function getPackageServerIPs($packageServers){
- $IPListPackages = [];
- foreach($packageServers as $packageServer)
- {
- $defaultIP = unserialize($packageServer->getServer()->getSettings('module_configuration')->value)['default_ip'];
- if($defaultIP != null)
- array_push($IPListPackages, $defaultIP);
- }
- return $IPListPackages;
- }
- public function getDefaultIp($dedicatedIp, $IPList, $serverIp, $IPListPackages){
- $ip = false;
- if($dedicatedIp)
- {
- $ip = $dedicatedIp;
- }
- elseif($IPList)
- {
- $ip = reset($IPList);
- }
- elseif($serverIp)
- {
- $ip = $serverIp;
- }
- elseif($IPListPackages)
- {
- $ip = reset($IPListPackages);
- }
- return $ip;
- }
- public function makeIpList($assingedips){
- $IPList = [];
- foreach(explode(" ",$assingedips) as $ip)
- {
- if($ip) {
- $ipo = new IP(trim($ip));
- $ip = (string) $ipo;
- array_push($IPList, trim($ip));
- }
- }
- return $IPList;
- }
- }
|