diff --git a/concrete/src/Permission/IPService.php b/concrete/src/Permission/IPService.php
index <HASH>..<HASH> 100644
--- a/concrete/src/Permission/IPService.php
+++ b/concrete/src/Permission/IPService.php
@@ -364,7 +364,8 @@ class IPService
      */
     public function getRequestIP()
     {
-        return new IPAddress(Request::getInstance()->getClientIp());
+        $ip = $this->getRequestIPAddress();
+        return new IPAddress($ip === null ? null : (string) $ip);
     }
 
     /**
diff --git a/concrete/src/Session/SessionValidator.php b/concrete/src/Session/SessionValidator.php
index <HASH>..<HASH> 100644
--- a/concrete/src/Session/SessionValidator.php
+++ b/concrete/src/Session/SessionValidator.php
@@ -43,8 +43,7 @@ class SessionValidator implements SessionValidatorInterface, LoggerAwareInterfac
      */
     public function handleSessionValidation(SymfonySession $session)
     {
-        $ip_address = new IPAddress($this->request->getClientIp());
-        $request_ip = $ip_address->getIp(IPAddress::FORMAT_IP_STRING);
+        $request_ip = (string) $this->app->make('ip')->getRequestIPAddress();
 
         $invalidate = false;
Always use IPLib to parse IP Addresses