about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--broadlink/__init__.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/broadlink/__init__.py b/broadlink/__init__.py
index 1517868784f1..8b08ffc5fee2 100644
--- a/broadlink/__init__.py
+++ b/broadlink/__init__.py
@@ -64,6 +64,10 @@ def gendevice(devtype, host, mac):
 def discover(timeout=None, local_ip_address=None):
     if local_ip_address is None:
         local_ip_address = socket.gethostbyname(socket.gethostname())
+    if local_ip_address.startswith('127.'):
+         s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+         s.connect(('8.8.8.8', 53))  # connecting to a UDP address doesn't send packets
+         local_ip_address = s.getsockname()[0]
     address = local_ip_address.split('.')
     cs = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
     cs.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)