Return an IP address in Session::getIpAddress()
authorTim Düsterhus <duesterhus@woltlab.com>
Fri, 4 Jun 2021 10:08:20 +0000 (12:08 +0200)
committerTim Düsterhus <duesterhus@woltlab.com>
Fri, 4 Jun 2021 11:53:47 +0000 (13:53 +0200)
wcfsetup/install/files/lib/system/session/Session.class.php

index 9fe824431d5e191e0d0c121e4cb423b18ea9e74e..2de66d50cd6ac7199289ef528647711cc3a78e5f 100644 (file)
@@ -2,8 +2,8 @@
 
 namespace wcf\system\session;
 
+use wcf\util\IpAddress;
 use wcf\util\UserAgent;
-use wcf\util\UserUtil;
 
 /**
  * Represents a session.
@@ -84,11 +84,13 @@ final class Session
     }
 
     /**
-     * Returns the converted ip address of the session.
+     * Returns the last used ip address of the session.
      */
-    public function getIpAddress(): string
+    public function getIpAddress(): IpAddress
     {
-        return UserUtil::convertIPv6To4($this->data['ipAddress']);
+        $ipAddress = new IpAddress($this->data['ipAddress']);
+
+        return $ipAddress->asV4() ?: $ipAddress;
     }
 
     /**