diff --git a/webservd/dbus_request_handler.cc b/webservd/dbus_request_handler.cc
index 277d651..f9362c2 100644
--- a/webservd/dbus_request_handler.cc
+++ b/webservd/dbus_request_handler.cc
@@ -50,10 +50,12 @@
       handler_proxy_{handler_proxy} {
 }
 
-void DBusRequestHandler::HandleRequest(Request* request) {
+void DBusRequestHandler::HandleRequest(Request* request,
+                                       const std::string& src) {
   std::vector<std::tuple<std::string, std::string>> headers;
   for (const auto& pair : request->GetHeaders())
     headers.emplace_back(pair.first, pair.second);
+  headers.emplace_back("Source-Host", src);
 
   std::vector<std::tuple<int32_t, std::string, std::string, std::string,
                          std::string>> files;
diff --git a/webservd/dbus_request_handler.h b/webservd/dbus_request_handler.h
index 3171f8a..f90e40b 100644
--- a/webservd/dbus_request_handler.h
+++ b/webservd/dbus_request_handler.h
@@ -36,7 +36,7 @@
 
   // Called to process an incoming HTTP request this handler is subscribed
   // to handle.
-  void HandleRequest(Request* request) override;
+  void HandleRequest(Request* request, const std::string& src) override;
 
  private:
   Server* server_{nullptr};
diff --git a/webservd/request.cc b/webservd/request.cc
index 27e0b69..bd04d26 100644
--- a/webservd/request.cc
+++ b/webservd/request.cc
@@ -14,7 +14,9 @@
 
 #include "webservd/request.h"
 
+#include <arpa/inet.h>
 #include <microhttpd.h>
+#include <netinet/in.h>
 
 #include <base/bind.h>
 #include <base/files/file.h>
@@ -251,8 +253,16 @@
     protocol_handler_->AddRequest(this);
     auto p = protocol_handler_->request_handlers_.find(request_handler_id_);
     CHECK(p != protocol_handler_->request_handlers_.end());
+    const MHD_ConnectionInfo* info = MHD_get_connection_info(
+        connection_, MHD_CONNECTION_INFO_CLIENT_ADDRESS);
+    struct sockaddr_in6 *sock_addr;
+    char src[INET6_ADDRSTRLEN] = {};
+    if (info) {
+      sock_addr = reinterpret_cast<struct sockaddr_in6 *>(info->client_addr);
+      inet_ntop(AF_INET6,&sock_addr->sin6_addr, src, INET6_ADDRSTRLEN);
+    }
     // Send the request over D-Bus and await the response.
-    p->second.handler->HandleRequest(this);
+    p->second.handler->HandleRequest(this, src);
   } else {
     // There was no handler found when request was made, respond with
     // 404 Page Not Found.
diff --git a/webservd/request_handler_interface.h b/webservd/request_handler_interface.h
index fb3a25c..fae5fa2 100644
--- a/webservd/request_handler_interface.h
+++ b/webservd/request_handler_interface.h
@@ -30,7 +30,7 @@
   RequestHandlerInterface() = default;
   virtual ~RequestHandlerInterface() = default;
 
-  virtual void HandleRequest(Request* request) = 0;
+  virtual void HandleRequest(Request* request, const std::string& src) = 0;
 
  private:
   DISALLOW_COPY_AND_ASSIGN(RequestHandlerInterface);
