diff --git a/brian_dashboard_manager/inventory_provider/interfaces.py b/brian_dashboard_manager/inventory_provider/interfaces.py
index a6cbbcc0898919aa79634004807bc56e46c1e23d..a27ceecfaee82f49d18c984e012665ac9ff6050e 100644
--- a/brian_dashboard_manager/inventory_provider/interfaces.py
+++ b/brian_dashboard_manager/inventory_provider/interfaces.py
@@ -1,10 +1,49 @@
 import requests
 import logging
+from functools import reduce
 
 logger = logging.getLogger(__name__)
 
 
-def get_interfaces(host):
+def _get_ip_info(host):  # pragma: no cover
+    def reduce_func(prev, curr):
+
+        interface_name = curr.get('name')
+        router_name = curr.get('router')
+        if interface_name and router_name:
+            router = prev.get(router_name, {})
+            interface = router.get(interface_name, {})
+            ipv4 = curr.get('ipv4', [])
+            ipv6 = curr.get('ipv6', [])
+            interface['ipv4'] = ipv4
+            interface['ipv6'] = ipv6
+            router[interface_name] = interface
+            prev[router_name] = router
+
+        return prev
+    r = requests.get(f'{host}/data/interfaces')
+    r.raise_for_status()
+    interfaces = r.json()
+    return reduce(reduce_func, interfaces, {})
+
+
+def get_interfaces(host):  # pragma: no cover
     r = requests.get(f'{host}/poller/interfaces')
     r.raise_for_status()
-    return r.json()
+    interfaces = r.json()
+    ip_info = _get_ip_info(host)
+
+    def enrich(interface):
+        router_name = interface.get('router')
+        router = ip_info.get(router_name)
+        if not router:
+            return interface
+
+        ip = router.get(interface['name'])
+        ipv4 = ip['ipv4']
+        ipv6 = ip['ipv6']
+        interface['ipv4'] = ipv4
+        interface['ipv6'] = ipv6
+        return interface
+    enriched = list(map(enrich, interfaces))
+    return enriched