diff options
author | Eugene Schava <eschava@gmail.com> | 2016-12-20T13·59+0200 |
---|---|---|
committer | Eugene Schava <eschava@gmail.com> | 2016-12-20T13·59+0200 |
commit | 72cf09f9e42a09b2fd806f3d5f08fb4b05ae4aab (patch) | |
tree | 0767e999ea145e8ee2f9eb61bed121f2b4fe8a5e /broadlink | |
parent | 83f1c3fc93344c0264223fbf37ac0198626e006b (diff) |
allow to specify network interface for discover method
Diffstat (limited to 'broadlink')
-rw-r--r--[-rwxr-xr-x] | broadlink/__init__.py | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/broadlink/__init__.py b/broadlink/__init__.py index f4bb1069caa1..ffbfd3ad2b1e 100755..100644 --- 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() |