diff --git a/include/authorization.hpp b/include/authorization.hpp
index 202628c..27d7b32 100644
--- a/include/authorization.hpp
+++ b/include/authorization.hpp
@@ -87,7 +87,7 @@
     // calling directly into pam for every request
     std::string unsupportedClientId = "";
     return persistent_data::SessionStore::getInstance().generateUserSession(
-        user, clientIp.to_string(), unsupportedClientId,
+        user, clientIp, unsupportedClientId,
         persistent_data::PersistenceType::SINGLE_REQUEST, isConfigureSelfOnly);
 }
 #endif
diff --git a/include/login_routes.hpp b/include/login_routes.hpp
index 42eebfe..8810356 100644
--- a/include/login_routes.hpp
+++ b/include/login_routes.hpp
@@ -143,8 +143,7 @@
                     auto session =
                         persistent_data::SessionStore::getInstance()
                             .generateUserSession(
-                                username, req.ipAddress.to_string(),
-                                unsupportedClientId,
+                                username, req.ipAddress, unsupportedClientId,
                                 persistent_data::PersistenceType::TIMEOUT,
                                 isConfigureSelfOnly);
 
diff --git a/include/sessions.hpp b/include/sessions.hpp
index 13a335a..a05e47b 100644
--- a/include/sessions.hpp
+++ b/include/sessions.hpp
@@ -15,6 +15,7 @@
 #include <pam_authenticate.hpp>
 #include <random.hpp>
 #include <sdbusplus/bus/match.hpp>
+#include <utils/ip_utils.hpp>
 
 #include <csignal>
 #include <random>
@@ -211,7 +212,8 @@
 {
   public:
     std::shared_ptr<UserSession> generateUserSession(
-        const std::string_view username, const std::string_view clientIp,
+        const std::string_view username,
+        const boost::asio::ip::address& clientIp,
         const std::string_view clientId,
         PersistenceType persistence = PersistenceType::TIMEOUT,
         bool isConfigureSelfOnly = false)
@@ -261,11 +263,12 @@
                 return nullptr;
             }
         }
-        auto session = std::make_shared<UserSession>(
-            UserSession{uniqueId, sessionToken, std::string(username),
-                        csrfToken, std::string(clientId), std::string(clientIp),
-                        std::chrono::steady_clock::now(), persistence, false,
-                        isConfigureSelfOnly});
+
+        auto session = std::make_shared<UserSession>(UserSession{
+            uniqueId, sessionToken, std::string(username), csrfToken,
+            std::string(clientId), redfish::ip_util::toString(clientIp),
+            std::chrono::steady_clock::now(), persistence, false,
+            isConfigureSelfOnly});
         auto it = authTokens.emplace(std::make_pair(sessionToken, session));
         // Only need to write to disk if session isn't about to be destroyed.
         needWrite = persistence == PersistenceType::TIMEOUT;
