From 72cf09f9e42a09b2fd806f3d5f08fb4b05ae4aab Mon Sep 17 00:00:00 2001 From: Eugene Schava Date: Tue, 20 Dec 2016 15:59:32 +0200 Subject: [PATCH] allow to specify network interface for discover method --- broadlink/__init__.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) mode change 100755 => 100644 broadlink/__init__.py diff --git a/broadlink/__init__.py b/broadlink/__init__.py old mode 100755 new mode 100644 index f4bb1069c..ffbfd3ad2 --- a/broadlink/__init__.py +++ b/broadlink/__init__.py @@ -48,15 +48,16 @@ def gendevice(devtype, host, mac): else: return device(host=host, mac=mac) -def discover(timeout=None): - 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] +def discover(timeout=None, local_ip_address=None): + if local_ip_address is None: + 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) cs.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) - cs.bind(('',0)) + cs.bind((local_ip_address,0)) port = cs.getsockname()[1] starttime = time.time()