diff --git a/app/common/services/api-utils.js b/app/common/services/api-utils.js
index fcd873c..5f4b931 100644
--- a/app/common/services/api-utils.js
+++ b/app/common/services/api-utils.js
@@ -91,8 +91,9 @@
                     function parseNetworkData(content){
                       var data = {
                         interface_ids: [],
-                        interfaces: {
-                        }
+                        interfaces: {},
+                        ip_addresses: {ipv4 : [],
+                                       ipv6 : []},
                       };
                       var interfaceId = '', keyParts = [], interfaceHash = '', interfaceType = '';
                       for(var key in content.data){
@@ -131,6 +132,7 @@
                           if(data.interfaces[interfaceId][interfaceType].ids.indexOf(interfaceHash) == -1){
                             data.interfaces[interfaceId][interfaceType].ids.push(interfaceHash);
                             data.interfaces[interfaceId][interfaceType].values.push(content.data[key]);
+                            data.ip_addresses[interfaceType].push(content.data[key]['Address']);
                           }
                         }
                       }
diff --git a/app/overview/controllers/system-overview-controller.html b/app/overview/controllers/system-overview-controller.html
index 295aac6..f6c91c3 100644
--- a/app/overview/controllers/system-overview-controller.html
+++ b/app/overview/controllers/system-overview-controller.html
@@ -45,8 +45,8 @@
 							<p class="courier-bold overview__hostname">{{dataService.hostname}}</p>
 						</li>
 						<li class="overview__metadata-block">
-							<p class="content-label">BMC Host/IP address</p>
-							<p class="courier-bold">{{dataService.server_id}}</p>
+							<p class="content-label">IP addresses</p>
+							<p class="courier-bold" ng-repeat="ip_address in bmc_ip_addresses">{{ip_address}}</p>
 						</li>
 						<li class="overview__metadata-block">
 							<p class="content-label">Firmware Version</p>
diff --git a/app/overview/controllers/system-overview-controller.js b/app/overview/controllers/system-overview-controller.js
index 87fcf4e..c98f98e 100644
--- a/app/overview/controllers/system-overview-controller.js
+++ b/app/overview/controllers/system-overview-controller.js
@@ -30,6 +30,7 @@
                 $scope.server_firmware = "";
                 $scope.power_consumption = "";
                 $scope.power_cap = "";
+                $scope.bmc_ip_addresses = [];
                 $scope.loading = false;
 
                 loadOverviewData();
@@ -45,6 +46,7 @@
                       server_info: APIUtils.getServerInfo(),
                       power_consumption: APIUtils.getPowerConsumption(),
                       power_cap: APIUtils.getPowerCap(),
+                      network_info: APIUtils.getNetworkInfo(),
                     };
                     $q.all(promises)
                       .then(function(data){
@@ -62,6 +64,7 @@
                         $scope.displayBMCTime(data.bmc_time);
                         $scope.displayPowerConsumption(data.power_consumption);
                         $scope.displayPowerCap(data.power_cap);
+                        $scope.displayNetworkInfo(data.network_info);
                       })
                       .finally(function(){
                         $scope.loading = false;
@@ -115,6 +118,13 @@
                 $scope.displayPowerCap = function(data){
                     $scope.power_cap = data;
                 }
+
+                $scope.displayNetworkInfo = function(data){
+                    // TODO: openbmc/openbmc#3150 Support IPV6 when officially
+                    // supported by the backend
+                    $scope.bmc_ip_addresses =
+                        data.formatted_data.ip_addresses.ipv4;
+                }
             }
         ]
     );
