diff --git a/globals/Dependencies/Web/IpRange.php b/globals/Dependencies/Web/IpRange.php index 9d04ec0..1b75d4a 100644 --- a/globals/Dependencies/Web/IpRange.php +++ b/globals/Dependencies/Web/IpRange.php @@ -182,6 +182,9 @@ namespace Alphaland\Web { */ public static function IsIpInCidrRange(string $ip, string $cidr) { + if (strpos($cidr, '/') === false) + $cidr = "$cidr/32"; + list($subnet, $bits) = explode('/', $cidr); if ($bits === null) { $bits = 32; diff --git a/globals/Dependencies/Web/WebContextManager.php b/globals/Dependencies/Web/WebContextManager.php index 5201449..44da04e 100644 --- a/globals/Dependencies/Web/WebContextManager.php +++ b/globals/Dependencies/Web/WebContextManager.php @@ -3,6 +3,7 @@ namespace Alphaland\Web { use PDO; + use Alphaland\Web\IpHelper; class WebContextManager { @@ -16,7 +17,7 @@ namespace Alphaland\Web { $currentIp = WebContextManager::GetCurrentIPAddress(); $ipWhitelist = explode(";", WebsiteSettings::GetSetting("webservice_whitelist", "127.0.0.0/8;192.168.0.0/16;10.0.0.0/8")); - return in_array($currentIp, $ipWhitelist); + return IpHelper::IsIpInCidrNetmaskOrRangeList($currentIp, $ipWhitelist); } public static function CanBypassMaintenance() diff --git a/globals/config.php b/globals/config.php index 8ea3153..cb3638d 100644 --- a/globals/config.php +++ b/globals/config.php @@ -125,6 +125,7 @@ try include "C:/Webserver/nginx/Alphaland/globals/Dependencies/Economy/EconomyHelper.php"; include "C:/Webserver/nginx/Alphaland/globals/Dependencies/Groups/Group.php"; include "C:/Webserver/nginx/Alphaland/globals/Dependencies/Web/WebsiteSettings.php"; + include "C:/Webserver/nginx/Alphaland/globals/Dependencies/Web/IpRange.php"; //authenticator $authenticator = new PHPGangsta_GoogleAuthenticator();