diff --git a/beat/core/agent.py b/beat/core/agent.py
old mode 100644
new mode 100755
index 2e5eab957723a4217877b70c994aaeb20e234191..8b61307b46d61fd8f5449843e450bd930c4ab04d
--- a/beat/core/agent.py
+++ b/beat/core/agent.py
@@ -45,15 +45,6 @@ from . import dock
 from . import baseformat
 
 
-def get_network_ip_address(host_address):
-  '''Returns the most sensible network IP address given a host address'''
-
-  import socket
-  import difflib
-  possible_addresses = socket.gethostbyname_ex(socket.gethostname())[2]
-  return difflib.get_close_matches(host_address, possible_addresses, cutoff=0)[0]
-
-
 class Server(gevent.Greenlet):
   '''A 0MQ server for our communication with the user process'''
 
@@ -69,7 +60,7 @@ class Server(gevent.Greenlet):
     self.context = zmq.Context()
     self.socket = self.context.socket(zmq.PAIR)
 
-    self.address = 'tcp://' + get_network_ip_address(host_address)
+    self.address = 'tcp://' + host_address
     port = self.socket.bind_to_random_port(self.address)
     self.address += ':%d' % port
     logger.debug("zmq server bound to `%s'", self.address)
diff --git a/beat/core/dock.py b/beat/core/dock.py
old mode 100644
new mode 100755
index 1eb61bf6827c2330149ef5533b8e4b4ec55186b1..57e415f2325db1bb931cdb7f248ab0a8c4d54e52
--- a/beat/core/dock.py
+++ b/beat/core/dock.py
@@ -39,6 +39,7 @@ import six
 import docker
 import requests
 import simplejson
+import socket
 
 from . import stats
 
@@ -107,8 +108,9 @@ class Host(object):
   @property
   def ip(self):
     '''The IP address of the docker host'''
-
-    return '127.0.0.1'
+    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+    s.connect(('8.8.8.8', 0))  # connecting to a UDP address doesn't send packets
+    return s.getsockname()[0]
 
 
   def _discover_environments(self, raise_on_errors=True):