diff --git a/app/common/directives/app-header.html b/app/common/directives/app-header.html
index d6eb8bc..bc0d744 100644
--- a/app/common/directives/app-header.html
+++ b/app/common/directives/app-header.html
@@ -7,7 +7,7 @@
 <div class="header__functions-wrapper" aria-label="header">
     <div class="logo__wrapper"><img src="assets/images/logo.svg" class="header__logo"  alt="company logo"/></div>
 	<div class="header__server-name">
-		<p class="header__hostname">[[hostname needed]]</p>
+		<p class="header__hostname">{{dataService.hostname}}</p>
 		<p class="header__server-ip courier-bold">BMC IP address {{dataService.server_id}}</p>
 	</div>
     <div class="header__functions">
diff --git a/app/common/directives/app-header.js b/app/common/directives/app-header.js
index a2f510e..6a9493b 100644
--- a/app/common/directives/app-header.js
+++ b/app/common/directives/app-header.js
@@ -15,7 +15,6 @@
 
                     $scope.loadServerStatus = function(){
                         if(!userModel.isLoggedIn()){
-                            //@TODO:some error message?
                             return;
                         }
                         APIUtils.getHostState(function(status){
@@ -28,7 +27,18 @@
                             }
                         });
                     }
+
+                    $scope.loadNetworkInfo = function(){
+                        if(!userModel.isLoggedIn()){
+                            return;
+                        }
+                        APIUtils.getNetworkInfo().then(function(data){
+                            dataService.setNetworkInfo(data);
+                        });
+                    }
+
                     $scope.loadServerStatus();
+                    $scope.loadNetworkInfo();
 
                     $scope.logout = function(){
                         userModel.logout(function(status, error){
@@ -42,6 +52,7 @@
 
                     $scope.refresh = function(){
                         $scope.loadServerStatus();
+                        $scope.loadNetworkInfo();
 
                         //Add flash class to header timestamp on click of refresh
                         var myEl = angular.element( document.querySelector( '.header__refresh' ) );
@@ -54,6 +65,7 @@
 
                     var loginListener = $rootScope.$on('user-logged-in', function(event, arg){
                         $scope.loadServerStatus();
+                        $scope.loadNetworkInfo();
                     });
 
                     $scope.$on('$destroy', function(){
