diff --git a/snmp_conf_manager.cpp b/snmp_conf_manager.cpp
index b523c5d..52f4678 100644
--- a/snmp_conf_manager.cpp
+++ b/snmp_conf_manager.cpp
@@ -31,7 +31,8 @@
 
 std::string ConfManager::client(std::string address, uint16_t port)
 {
-    // TODO: Check whether the given manager is already there or not.
+    // will throw exception if it is already configured.
+    checkClientConfigured(address, port);
 
     lastClientId++;
     try
@@ -62,6 +63,31 @@
     return objPath.string();
 }
 
+void ConfManager::checkClientConfigured(const std::string& address,
+                                        uint16_t port)
+{
+    if (address.empty())
+    {
+        log<level::ERR>("Invalid address");
+        elog<InvalidArgument>(Argument::ARGUMENT_NAME("ADDRESS"),
+                              Argument::ARGUMENT_VALUE(address.c_str()));
+    }
+
+    for (const auto& val : clients)
+    {
+        if (val.second.get()->address() == address &&
+            val.second.get()->port() == port)
+        {
+            log<level::ERR>("Client already exist");
+            // TODO Add the error(Object already exist) in the D-Bus interface
+            // then make the change here,meanwhile send the Internal Failure.
+            elog<InvalidArgument>(
+                Argument::ARGUMENT_NAME("ADDRESS"),
+                Argument::ARGUMENT_VALUE("Client already exist."));
+        }
+    }
+}
+
 void ConfManager::deleteSNMPClient(Id id)
 {
     auto it = clients.find(id);
