| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- namespace MGModule\DNSManager2\mgLibs\custom\helpers;
- use \MGModule\DNSManager2\addon;
- use \MGModule\DNSManager2\mgLibs\MySQL\query;
- class IPManagerIntegration
- {
- private static $check = null;
-
- static function check()
- {
- if(!is_null(self::$check)) {
- return self::$check;
- }
-
- if(!file_exists(dirname(addon::getMainDIR()) . DS . 'ipmanager2')) {
- self::$check = false;
- return false;
- };
- if(AddonHelper::isAddonTurnedON('ipmanager2')
- && version_compare('2.0.5', AddonHelper::getAddonVerison('ipmanager2'), '<=')) {
- self::$check = true;
- return true;
- }
-
- self::$check = false;
- return false;
- }
-
- static function getIPPoolsForService($serviceid) { //ipv4 only
- if(self::check() === false) {
- return array();
- }
-
- return query::query('SELECT ip_manager_ip_pools.pool, ip_manager_ip_pools.mask
- FROM ip_manager_assigned_pools
- INNER JOIN ip_manager_ip_pools ON ip_manager_ip_pools.id = ip_manager_assigned_pools.pool_id
- WHERE ip_manager_assigned_pools.service_id = :serviceid', array('serviceid' => $serviceid))->fetchAll();
- }
-
- static function getIPPoolsForClient($clientid) {
- if(self::check() === false) {
- return array();
- }
-
- return query::query('SELECT ip_manager_ip_pools.pool, ip_manager_ip_pools.mask
- FROM ip_manager_assigned_pools
- INNER JOIN ip_manager_ip_pools ON ip_manager_ip_pools.id = ip_manager_assigned_pools.pool_id
- INNER JOIN tblhosting ON tblhosting.id = ip_manager_assigned_pools.service_id
- WHERE tblhosting.userid = :userid', array('userid' => $clientid))->fetchAll();
- }
-
- static function isIPInNetwork($ip, $net_addr, $net_mask = false) //ipv4 only
- {
- if($net_mask === false) {
- $ex = explode('/', $net_addr);
- $net_addr = $ex[0];
- $net_mask = $ex[1];
- }
-
- if($net_mask <= 0) {
- return false;
- }
- $ip_binary_string = sprintf("%032b", ip2long($ip));
- $net_binary_string = sprintf("%032b", ip2long($net_addr));
- return (substr_compare($ip_binary_string, $net_binary_string, 0, $net_mask) === 0);
- }
- }
|