diff --git a/DataSourceVMwareGuestInfo.py b/DataSourceVMwareGuestInfo.py
index ab392be..3c59406 100644
--- a/DataSourceVMwareGuestInfo.py
+++ b/DataSourceVMwareGuestInfo.py
@@ -41,6 +41,8 @@
 VMWARE_RPCTOOL = find_executable("vmware-rpctool")
 VMX_GUESTINFO = "VMX_GUESTINFO"
 GUESTINFO_EMPTY_YAML_VAL = "---"
+LOCAL_IPV4 = 'local-ipv4'
+LOCAL_IPV6 = 'local-ipv6'
 
 
 class NetworkConfigError(Exception):
@@ -144,6 +146,10 @@
         host_info = get_host_info()
         LOG.info("got host-info: %s", host_info)
 
+        # Reflect any possible local IPv4 or IPv6 addresses in the guest
+        # info.
+        advertise_local_ip_addrs(host_info)
+
         # Ensure the metadata gets updated with information about the
         # host, including the network interfaces, default IP addresses,
         # etc.
@@ -255,6 +261,28 @@
     return val
 
 
+def advertise_local_ip_addrs(host_info):
+    '''
+    advertise_local_ip_addrs gets the local IP address information from
+    the provided host_info map and sets the addresses in the guestinfo
+    namespace
+    '''
+    if not host_info:
+        return
+
+    # Reflect any possible local IPv4 or IPv6 addresses in the guest
+    # info.
+    local_ipv4 = host_info[LOCAL_IPV4]
+    if local_ipv4:
+        set_guestinfo_value(LOCAL_IPV4, local_ipv4)
+        LOG.info("advertised local ipv4 address %s in guestinfo", local_ipv4)
+
+    local_ipv6 = host_info[LOCAL_IPV6]
+    if local_ipv6:
+        set_guestinfo_value(LOCAL_IPV6, local_ipv6)
+        LOG.info("advertised local ipv6 address %s in guestinfo", local_ipv6)
+
+
 def handle_returned_guestinfo_val(key, val):
     '''
     handle_returned_guestinfo_val returns the provided value if it is
@@ -546,9 +574,9 @@
 
     default_ipv4, default_ipv6 = get_default_ip_addrs()
     if default_ipv4:
-        host_info['local-ipv4'] = default_ipv4
+        host_info[LOCAL_IPV4] = default_ipv4
     if default_ipv6:
-        host_info['local-ipv6'] = default_ipv6
+        host_info[LOCAL_IPV6] = default_ipv6
 
     by_mac = host_info['network']['interfaces']['by-mac']
     by_ipv4 = host_info['network']['interfaces']['by-ipv4']
diff --git a/README.md b/README.md
index 487f441..37afd50 100644
--- a/README.md
+++ b/README.md
@@ -171,6 +171,15 @@
 
 Please note that keys are set to the valid YAML string `---` as it is not possible remove an existing key from the guestinfo key-space. A key's analogous encoding property will be set to a single white-space character, causing the datasource to treat the actual key value as plain-text, thereby loading it as an empty YAML doc (hence the aforementioned `---`).
 
+### Reading the local IP addresses
+
+This datasource automatically discovers the local IPv4 and IPv6 addresses for a guest operating system based on the default routes. However, when inspecting a VM externally, it's not possible to know what the _default_ IP address is for the guest OS. That's why this datasource sets the discovered, local IPv4 and IPv6 addresses back in the guestinfo namespace as the following keys:
+
+* `guestinfo.local-ipv4`
+* `guestinfo.local-ipv6`
+
+It is possible that a host may not have any default, local IP addresses. It's also possible the reported, local addresses are link-local addresses. But these two keys may be used to discover what this datasource determined were the local IPv4 and IPv6 addresses for a host.
+
 ## Building the RPM
 
 Building the RPM locally is handled via Docker. Simple execute the following command:
